51Testing软件测试论坛

标题: 哪位达人知道,如何获得操作系统的语言信息? [打印本页]

作者: nangfeng    时间: 2007-6-27 09:53
标题: 哪位达人知道,如何获得操作系统的语言信息?
需求是用QTP返回以下三个字段的值。目前OS, ComputerName都可以实现了;但OSLanguage始终没有找到方法。请求达人帮助!

'    Station Name Col
'    ----------------------------
Dim strComputerName
Set WshNetwork = CreateObject("WScript.Network")
strComputerName = WshNetwork.ComputerName
Datatable.Value(1,"Action1")=strComputerName


'    Platform Col
'    ----------------------------
Dim strPlatform
Set WshShell = CreateObject("WScript.Shell")
Set WshSysEnv = WshShell.Environment("SYSTEM")
strPlatform = WshSysEnv("OS")
Datatable.Value(2,"Action1")=strPlatform

'    or using following via QTP environment
'strOS=environment("OS")
'msgbox(strOS)


'    LanguageName Col record
'    ----------------------------
???
作者: skyzhu    时间: 2007-6-27 10:27
标题: 转来的
Function Language()

strComputer = "."
Set objItem = GetObject("winmgmts:\\" &strComputer &"\root\CIMV2")
Set colItems = objItem .ExecQuery("SELECT * FROM Win32_OperatingSystem")
For Each objItem In colItems
    Language = objItem.OSLanguage
If Language = "1033" Then
   Language = "EN"
elseif Language = "2052" then
   Language = "CN"
End If
Next

End Function

[ 本帖最后由 skyzhu 于 2007-6-27 10:31 编辑 ]
作者: nangfeng    时间: 2007-6-27 10:41
谢啦!
原来要搞这么复杂,还以为和OS, ComputerName的获取一样
作者: nangfeng    时间: 2007-7-2 15:14
如果调用kernel32.dll中的函数,也可以实现:)

Extern.Declare micHwnd, "GetSystemDefaultUILanguage", "kernel32.dll", "GetSystemDefaultUILanguage"
hwnd = Extern.GetSystemDefaultUILanguage()
Select Case hwnd
    Case "1033"
        Msgbox "English - United States"
    Case "2057"   
        Msgbox "English - United Kingdom"
    Case "4105"   
        Msgbox "English - Canada"
    Case "2052"   
        Msgbox "Chinese - China"
    Case Else
        Msgbox "Please refer to LCID list for the language ID:[" & hwnd & "]."
End Select
作者: winfood    时间: 2007-7-2 15:36
支持一下LZ,本来想从Kernel里面找相关函数就是没有找到。2楼的方法也不错。
作者: martin8310    时间: 2007-10-10 16:39
GetLocale()

一个现有函数....可以直接获取的...
作者: 没有蛀牙    时间: 2007-10-10 16:56
OS和LocalHostName在build-in环境参数里就有
而且LZ第二个取OS的方法有点问题
我XP的系统取出来是Windows_NT
作者: 没有蛀牙    时间: 2007-10-10 17:04
原帖由 martin8310 于 2007-10-10 16:39 发表
GetLocale()

一个现有函数....可以直接获取的...

这个函数返回的是环境的语言设置,并不是操作系统本身的语言
作者: yuandjing    时间: 2007-10-11 09:15
好多强人啊,在下学习了




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2