Private Declare Function GetSystemDefaultLCID Lib "kernel32" () As LongPrivate Function GetOSLCID() As Integer Dim sysLCID As LongsysLCID = GetSystemDefaultLCID '&H409(us-英文)&H809(gb-英文) &HC09(au-英文) &H1009(ca-英文) '&H004(zh-中文)&H404(tw-Big5)&H804(cn-GBK/GB)&HC04(hk-Big5) &H1004(sg-GBK) '&H804=2052 &H404=1028 &H409=1033 &H809=2057 If sysLCID = &H804 Or sysLCID = &H4 Or sysLCID = &H1004 Then GetOSLCID = 1 '中文简体 ElseIf sysLCID = &H404 Or sysLCID = &HC04 Then GetOSLCID = 2 '中文繁体 ElseIf sysLCID Mod 16 = 9 Then GetOSLCID = 0 '(英文) Else: GetOSLCID = 0 End IfEnd Function
说明: GetSystemDefaultLCID API将返回Windows的Non-Unicode设定。StrConv的最后一个参数有可能用到。例如: LOCALE_ILANGUAGE: 0804 LOCALE_SLANGUAGE: Chinese (PRC) LOCALE_SENGLANGUAGE: Chinese LOCALE_SABBREVLANGNAME: CHS LOCALE_SNATIVELANGNAME: 中文(简体) LOCALE_ICOUNTRY: 86 LOCALE_SCOUNTRY: People's Republic of China LOCALE_SENGCOUNTRY: People's Republic of China LOCALE_SABBREVCTRYNAME: CHN LOCALE_SNATIVECTRYNAME: 中华人民共和国 LOCALE_IDEFAULTLANGUAGE: 0804 LOCALE_IDEFAULTCOUNTRY: 86 LOCALE_IDEFAULTCODEPAGE: 936
Dim sysLCID As LongsysLCID = GetSystemDefaultLCID
'&H409(us-英文)&H809(gb-英文) &HC09(au-英文) &H1009(ca-英文)
'&H004(zh-中文)&H404(tw-Big5)&H804(cn-GBK/GB)&HC04(hk-Big5) &H1004(sg-GBK)
'&H804=2052 &H404=1028 &H409=1033 &H809=2057
If sysLCID = &H804 Or sysLCID = &H4 Or sysLCID = &H1004 Then
GetOSLCID = 1 '中文简体
ElseIf sysLCID = &H404 Or sysLCID = &HC04 Then
GetOSLCID = 2 '中文繁体
ElseIf sysLCID Mod 16 = 9 Then
GetOSLCID = 0 '(英文)
Else: GetOSLCID = 0
End IfEnd Function
GetSystemDefaultLCID API将返回Windows的Non-Unicode设定。StrConv的最后一个参数有可能用到。例如:
LOCALE_ILANGUAGE: 0804
LOCALE_SLANGUAGE: Chinese (PRC)
LOCALE_SENGLANGUAGE: Chinese
LOCALE_SABBREVLANGNAME: CHS
LOCALE_SNATIVELANGNAME: 中文(简体)
LOCALE_ICOUNTRY: 86
LOCALE_SCOUNTRY: People's Republic of China
LOCALE_SENGCOUNTRY: People's Republic of China
LOCALE_SABBREVCTRYNAME: CHN
LOCALE_SNATIVECTRYNAME: 中华人民共和国
LOCALE_IDEFAULTLANGUAGE: 0804
LOCALE_IDEFAULTCOUNTRY: 86
LOCALE_IDEFAULTCODEPAGE: 936