找回密码
 加入
搜索
查看: 9107|回复: 23

[系统综合] [已解决]如何查询XP菜单和对话框中所用的语言

 火.. [复制链接]
发表于 2012-4-18 09:56:29 | 显示全部楼层 |阅读模式
本帖最后由 fuinei 于 2012-4-23 15:01 编辑

各位好,由于公司部分电脑OS为英文版+汉化包的方式安装,在安装部分非多国语言版的软件时需根据当前用户语言进行选择性安装,请问AU3能否查询Windows XP菜单和对话框中所用的语言呢?
补充一下,没有安装MUI包的系统看不到菜单和对话框中所用的语言信息

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2012-4-18 14:56:44 | 显示全部楼层
没有安装你所谓的MUI包,也不知道是不是楼主所要,最后谢下Q为1112992的朋友帮忙测试英文操作系统
$strComputer = "."
$objWMIService = ObjGet("winmgmts:\" & $strComputer & "\root\CIMV2")
$colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_OperatingSystem", "WQL")
For $objItem In $colItems
                If $objItem.OSLanguage = 2052 Then
                    MsgBox(1,"","您使用的是中文操作系统")
            ElseIf $objItem.OSLanguage = 1033 Then
                        MsgBox(1,"","您使用的是英文操作系统")
                Else
                    MsgBox(1,"","您自己到以下网站查您的系统语言代码吧.."&@CRLF&"http://msdn.microsoft.com/en-us/library/aa394239.aspx")
                EndIf
Next
 楼主| 发表于 2012-4-18 15:47:55 | 显示全部楼层
回复 2# 502762378

谢谢502762378兄的回复,上面的WMI语句只能判断系统内核所使用的语言,其返回结果与系统自带的宏@OSLang相同,在我的测试环境(英文版OS+汉化包-界面为中文)其返回值仍为英文操作系统。
发表于 2012-4-18 17:33:20 | 显示全部楼层
由于不是英文系统+汉化包.
纯猜,不知道结果
#include <array.au3>

$Language=DllCall('kernel32.dll', 'dword', 'GetSystemDefaultUILanguage')
_ArrayDisplay($Language)
 楼主| 发表于 2012-4-18 18:18:19 | 显示全部楼层
回复 4# 3mile

谢谢3mile元老的指导,该方式返回的值仍与@OSLang效果相同,不知有没有哪位兄弟有好的方法呢?如有请指导,谢谢!
发表于 2012-4-18 18:30:32 | 显示全部楼层
试着监控下注册表以下的变化,如果还不行那没折了
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer
发表于 2012-4-18 18:38:00 | 显示全部楼层
_WinAPI_GetUserDefaultUILanguage
_WinAPI_EnumResourceLanguages
_WinAPI_EnumUILanguages
挑一个也许能对上,不知道到底什么情况
 楼主| 发表于 2012-4-19 11:37:31 | 显示全部楼层
回复 7# netegg

谢谢netegg元老的指导,没有找到函数_WinAPI_GetUserDefaultUILanguage,而函数_WinAPI_GetUserDefaultLCID返回值为系统区域选项中“标准和格式”设置所对应的值
根据帮助信息,_WinAPI_EnumResourceLanguages作用为枚举特定语言的资源, 类型与名称, 以及相关的二进制模块,根据帮助信息无法确定模块句柄,使用示例测试了一下返回信息仍与@OSLang相同
_WinAPI_EnumSystemLocales作用为枚举操作系统安装或支持的区域设置,测试不能列出当前的设置情况
 楼主| 发表于 2012-4-19 12:06:54 | 显示全部楼层
回复 6# 502762378

我对比了中文和英文菜单时的注册表键名及键值,其内容完全一样

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2012-4-20 14:04:12 | 显示全部楼层
 楼主| 发表于 2012-4-20 18:44:00 | 显示全部楼层
回复 10# 502762378

谢谢指导,netegg元老提及过GetUserDefaultUILanguage函敉但帮忙中没有找到相关信息,奇怪~~~
发表于 2012-4-20 18:47:21 | 显示全部楼层
回复 11# fuinei


    貌似可以注册表读取
http://technet.microsoft.com/zh-cn/ms905328
发表于 2012-4-23 09:00:00 | 显示全部楼层
回复 11# fuinei
#Include <WinAPIEx.au3>
_WinAPI_GetUserDefaultUILanguage()
发表于 2012-4-23 10:04:23 | 显示全部楼层
可以从注册表中找的的把  你可以去网上下个注册表跟踪软件
 楼主| 发表于 2012-4-23 13:35:01 | 显示全部楼层
回复 13# netegg

该代码在3.3.7.15中报错(提示 _WinAPI_GetUserDefaultUILanguage(): 未定义的函数.),请问netegg元老可正常运行吗?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-6-12 22:33 , Processed in 0.083800 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表