找回密码
 加入
搜索
查看: 3864|回复: 9

[系统综合] 返回的系统语言有问题?

  [复制链接]
发表于 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[0],4)
                MsgBox(0,"1",$UserIntLang)
Else
$UserIntLang="UNKNOWN"
MsgBox(0,"2",$UserIntLang)
EndIf



这个怎么我改变 系统语言后,重启没反应,还是返回原来的 语言,比如 开始的时候我的系统语言是  中文(台湾),返回的值是0404,后来我改成 中文(PRC),重启后,怎么返回的还是0404,而不是0804啊
 楼主| 发表于 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[3])


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

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

本帖子中包含更多资源

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

×
发表于 2011-3-10 11:53:35 | 显示全部楼层
重启后的语言是修改后的吗,下面的宏是系统语言的编号
@OSLang
返回表示操作系统语言的编号(如0804).
可以试试
 楼主| 发表于 2011-3-10 14:07:15 | 显示全部楼层
回复 3# xyold1


     重启后的语言是修改后的,比如 我本来的系统语言在高级那是  中文(台湾),我设置 成 中文(中国) 后,他提示要重启才生效,我就重启了下,我再调出界面看,现在的语言就是 中文(中国) ,但是我运行 脚本的时候,弹出的的还是 0404,而不是0804
发表于 2011-3-10 14:32:42 | 显示全部楼层
那个宏试了没有呢?  @OSLang
它返回的也不对么?
 楼主| 发表于 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 对应的 中文(台灣)
 楼主| 发表于 2011-3-10 17:36:23 | 显示全部楼层
有哪位大虾帮我解决下问题啊。。
发表于 2011-3-11 18:49:15 | 显示全部楼层
莫非返回的是区域????我只是猜猜而已。。。
发表于 2011-3-14 22:12:11 | 显示全部楼层
关注此问题、、
发表于 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)
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-18 10:30 , Processed in 0.084021 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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