可以有很多办法来确定Win 95的语种,采用何种方法要看你的目的。如果你想知道货币、时间格式等语种信息,可以访问WIN.INI的[Intl]节,其中iCountry表示国家代码,sCountry表示国家名称。如果你想获得当前Win 95的语言版本,可以使用Win32 API的GetOEMCP函数获得当前系统的国家代码。也可以使用Windows API函数GetSystemDefaultLCID()。
LCID这里称之为“地方”,是个32位的位的值,用于为现成或系统标识语言和平台。其中0~15位指出语言。0~15位又分为两个部分。其中0~9标识主语言。10~15标识语言的一个子集。所以我们的思路是先得出系统的地方值,然后取出第10位值即可。
'语言常数
Public Const LANG_CHINESE& = &H4
Public Const LANG_BULGARIAN& = &H2
Public Const LANG_CROATIAN& = &H1A
Public Const LANG_CZECH& = &H5
Public Const LANG_DANISH& = &H6
Public Const LANG_DUTCH& = &H13
Public Const LANG_ENGLISH& = &H9
Public Const LANG_FINNISH& = &HB
Public Const LANG_FRENCH& = &HC
Public Const LANG_GERMAN& = &H7
Public Const LANG_GREEK& = &H8
Public Const LANG_HUNGARIAN& = &HE
Public Const LANG_ICELANDIC& = &HF
Public Const LANG_ITALIAN& = &H10
Public Const LANG_JAPANESE& = &H11
Public Const LANG_KOREAN& = &H12
Public Const LANG_NEUTRAL& = &H0
Public Const LANG_NORWEGIAN& = &H14
Public Const LANG_POLISH& = &H15
Public Const LANG_PORTUGUESE& = &H16
Public Const LANG_ROMANIAN& = &H18
Public Const LANG_RUSSIAN& = &H19
Public Const LANG_SLOVAK& = &H1B
Public Const LANG_SLOVENIAN& = &H24
Public Const LANG_SPANISH& = &HA
Public Const LANG_SWEDISH& = &H1D
Public Const LANG_TURKISH& = &H1F
'函数声明
Public Declare Function GetSystemDefaultLCID Lib "kernel32" () As Long
'例子代码
Dim lngLCID As Long
Dim lngLangID As Long
lngLCID = GetSystemDefaultLCID
'取低10位
lngLangID = (lngLCID And (Not &HFC00))
Select Case lngLangID
Case LANG_CHINESE
MsgBox "您使用的是中文Windows", vbInformation, "信息"
case LANG_ENGLISH
MsgBox "您使用的英文Windows",vbInformation,"信息"
End Select
但要注意:如果你的程序依赖于某个特定的DLL,它支持的语种可能与当前系统的语种不同,因为某些软件(特别是微软的软件)可能会安装一些版本比较新的DLL到用户的系统中,通常这些DLL是英文版的,而用户使用的系统可能是中文版的,所以检测某个DLL的语言版本可以使用WIndows API的GetFileVersionInfo函数。如果你只是想知道Win 95是否支持双字节,可以使用WIndows API的GetSystemMetrics(SM_DBCSENABLED)。