返回的系统语言有问题?
本帖最后由 alas 于 2011-3-10 11:19 编辑$Lang_dll=DllOpen("kernel32.dll")
$UserIntLang=DllCall($Lang_dll, "int","GetUserDefaultUILanguage")
if @error=0 Then
$UserIntLang=Hex($UserIntLang,4)
MsgBox(0,"1",$UserIntLang)
Else
$UserIntLang="UNKNOWN"
MsgBox(0,"2",$UserIntLang)
EndIf
这个怎么我改变 系统语言后,重启没反应,还是返回原来的 语言,比如 开始的时候我的系统语言是中文(台湾),返回的值是0404,后来我改成 中文(PRC),重启后,怎么返回的还是0404,而不是0804啊 本帖最后由 alas 于 2011-3-10 11:36 编辑
$iLCType = 1;1語言代碼,2語言名稱
$aRet = DllCall("kernel32.dll", "long", "GetLocaleInfo", "long", 0x400, "long", $iLCType, "str", "", "long", 255)
Msgbox(0,"語言:",$aRet)
这个返回的是可以,但是这个不需要重启
我是想要的重启后生效的那个语言
重启后的语言是修改后的吗,下面的宏是系统语言的编号
@OSLang
返回表示操作系统语言的编号(如0804).
可以试试 回复 3# xyold1
重启后的语言是修改后的,比如 我本来的系统语言在高级那是中文(台湾),我设置 成 中文(中国) 后,他提示要重启才生效,我就重启了下,我再调出界面看,现在的语言就是 中文(中国) ,但是我运行 脚本的时候,弹出的的还是 0404,而不是0804 那个宏试了没有呢?@OSLang
它返回的也不对么? 回复 5# xyold1
MsgBox(0, "系統語言是:", _Language())
Func _Language()
Select
Case StringInStr("0404", @OSLang)
Return "中文(台灣)"
Case StringInStr("0804", @OSLang)
Return "中文(中國)"
Case Else
Return "沒匹配的語言"
EndSelect
EndFunc
你说的这样子?这样我测了,还是0404 对应的 中文(台灣) 有哪位大虾帮我解决下问题啊。。 莫非返回的是区域????我只是猜猜而已。。。 关注此问题、、 不知道是否有效:
#include <GuiConstantsEx.au3>
#include <WinApiEx.au3>
#include <WindowsConstants.au3>
Local $Str, $aDisk
$ID = _WinAPI_GetUserDefaultLCID()
$Str&='Language => ' & _WinAPI_GetLocaleInfo($ID, $LOCALE_SLANGUAGE) & @CR & _
'Date format => ' & _WinAPI_GetLocaleInfo($ID, $LOCALE_SSHORTDATE) & @CR & _
'Time format => ' & _WinAPI_GetLocaleInfo($ID, $LOCALE_STIMEFORMAT) & @CR & _
'Currency name => ' & _WinAPI_GetLocaleInfo($ID, $LOCALE_SNATIVECURRNAME) & @CR & _
'Monetary symbol => ' & _WinAPI_GetLocaleInfo($ID, $LOCALE_SCURRENCY) & @CR
msgbox(0,0,$Str)
页:
[1]