GetLocaleInfo VB声明 Declare Function GetLocaleInfo Lib "kernel32" Alias "GetLocaleInfoA" (ByVal Locale As Long, ByVal LCType As Long, ByVal lpLCData As String, ByVal cchData As Long) As Long 说明 取得与指定“地方”有关的信息 返回值 Long,装载到缓冲区的字符数,或者cchData要求的缓冲区长度。零表示出错。会将GetLastError设为下述值之一:ERROR_INSUFFICIENT_BUFFER,ERROR_INVALID_FLAGS,ERROR_INVALID_PARAMETER 参数表 参数 类型及说明 Locale Long,欲为其获得信息的地方ID LCType Long,要取回的信息类型。参考api32.txt文件中带 LOCALE_ 前缀的常数。用OR运算符合并LOCALE_NOUSEROVERRIDE,从而强制使用系统默认信息——即使当前用户已修改了相关设置 lpLCData String,指定一个缓冲区,用于装载要求的信息。注意预先将字串格式化成合适的长度 cchData Long,lpLCData缓冲区的长度;如设为零,表示获取必要的缓冲区长度
用api函数GetSystemDefaultLCID:Option Explicit Private Declare Function GetSystemDefaultLCID Lib "kernel32" () As LongPrivate Sub Command1_Click() Dim LocaleID As Long LocaleID = GetSystemDefaultLCID Select Case LocaleID Case &H404 MsgBox "中文繁体" Case &H804 MsgBox "中文简体" Case &H409 MsgBox "english" Case Else MsgBox "其它返回值,可查找msdn" End Select End Sub
下面是delphi部分代码。
GetLocaleInfo(SysLocale.DefaultLCID,LOCALE_SABBREVLANGNAME,LocaleName,SizeOf(LocaleName));
Declare Function GetLocaleInfo Lib "kernel32" Alias "GetLocaleInfoA" (ByVal Locale As Long, ByVal LCType As Long, ByVal lpLCData As String, ByVal cchData As Long) As Long
说明
取得与指定“地方”有关的信息
返回值
Long,装载到缓冲区的字符数,或者cchData要求的缓冲区长度。零表示出错。会将GetLastError设为下述值之一:ERROR_INSUFFICIENT_BUFFER,ERROR_INVALID_FLAGS,ERROR_INVALID_PARAMETER
参数表
参数 类型及说明
Locale Long,欲为其获得信息的地方ID
LCType Long,要取回的信息类型。参考api32.txt文件中带 LOCALE_ 前缀的常数。用OR运算符合并LOCALE_NOUSEROVERRIDE,从而强制使用系统默认信息——即使当前用户已修改了相关设置
lpLCData String,指定一个缓冲区,用于装载要求的信息。注意预先将字串格式化成合适的长度
cchData Long,lpLCData缓冲区的长度;如设为零,表示获取必要的缓冲区长度
Private Declare Function GetSystemDefaultLCID Lib "kernel32" () As LongPrivate Sub Command1_Click()
Dim LocaleID As Long
LocaleID = GetSystemDefaultLCID
Select Case LocaleID
Case &H404
MsgBox "中文繁体"
Case &H804
MsgBox "中文简体"
Case &H409
MsgBox "english"
Case Else
MsgBox "其它返回值,可查找msdn"
End Select
End Sub