alas 发表于 2011-3-10 11:18:55

返回的系统语言有问题?

本帖最后由 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:23:33

本帖最后由 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)


这个返回的是可以,但是这个不需要重启

我是想要的重启后生效的那个语言

xyold1 发表于 2011-3-10 11:53:35

重启后的语言是修改后的吗,下面的宏是系统语言的编号
@OSLang
返回表示操作系统语言的编号(如0804).
可以试试

alas 发表于 2011-3-10 14:07:15

回复 3# xyold1


   重启后的语言是修改后的,比如 我本来的系统语言在高级那是中文(台湾),我设置 成 中文(中国) 后,他提示要重启才生效,我就重启了下,我再调出界面看,现在的语言就是 中文(中国) ,但是我运行 脚本的时候,弹出的的还是 0404,而不是0804

xyold1 发表于 2011-3-10 14:32:42

那个宏试了没有呢?@OSLang
它返回的也不对么?

alas 发表于 2011-3-10 15:00:38

回复 5# xyold1


   

MsgBox(0, "系統語言是:", _Language())
Func _Language()
Select
    Case StringInStr("0404", @OSLang)
      Return "中文(台灣)"

    Case StringInStr("0804", @OSLang)
      Return "中文(中國)"

    Case Else
      Return "沒匹配的語言"

    EndSelect
EndFunc

你说的这样子?这样我测了,还是0404 对应的 中文(台灣)

alas 发表于 2011-3-10 17:36:23

有哪位大虾帮我解决下问题啊。。

ywq111 发表于 2011-3-11 18:49:15

莫非返回的是区域????我只是猜猜而已。。。

chenlu_ling 发表于 2011-3-14 22:12:11

关注此问题、、

3mile 发表于 2011-3-14 22:55:33

不知道是否有效:
#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]
查看完整版本: 返回的系统语言有问题?