天天看点

用API函数获得系统本地信息

  Windows API中有一个函数GetLocaleInfo可以用来获得系统信息比如系统语言, 货币符号等

代码如下:

function TForm1.GetLocaleInformation(Flag: Integer): String;

var

pcLCA: Array[0..20] of Char;

begin

if( GetLocaleInfo(LOCALE_SYSTEM_DEFAULT,Flag,pcLCA,19) <= 0 ) then begin

pcLCA[0] := #0;

end;

Result := pcLCA;

procedure TForm1.Button1Click(Sender: TObject);

ShowMessage(GetLocaleInformation(LOCALE_SENGLANGUAGE));

  参数 "Flag "可以取下列值:

LOCALE_NOUSEROVERRIDE { do not use user overrides }

LOCALE_USE_CP_ACP { use the system ACP }

LOCALE_ILANGUAGE { 语言代号 }

LOCALE_SLANGUAGE { 本地语言名称 }

LOCALE_SENGLANGUAGE { 语言的英语名 }

LOCALE_SABBREVLANGNAME { 语言名称缩写 }

LOCALE_SNATIVELANGNAME { 本地语言名称 }

LOCALE_ICOUNTRY { 国家代号 }

LOCALE_SCOUNTRY { 国家名 }

LOCALE_SENGCOUNTRY { 国家的英语名称 }

LOCALE_SABBREVCTRYNAME { 国家名缩写 }

LOCALE_SNATIVECTRYNAME { 国家名 }

LOCALE_IDEFAULTLANGUAGE { 缺省语言代号 }

LOCALE_IDEFAULTCOUNTRY { 缺省国家代码 }

LOCALE_IDEFAULTCODEPAGE { 缺省oem代码页 }

LOCALE_IDEFAULTANSICODEPAGE { 缺省ansi代码页 }

LOCALE_IDEFAULTMACCODEPAGE { 缺省mac页 }

LOCALE_SLIST { 列表项分割符 }

LOCALE_IMEASURE { 测量单位0 = 米制, 1 = 英制 }

LOCALE_SDECIMAL { 小数点符号 }

LOCALE_STHOUSAND { 千位分割符 }

LOCALE_SGROUPING { digit grouping }

LOCALE_IDIGITS { number of fractional digits }

LOCALE_ILZERO { leading zeros for decimal }

LOCALE_INEGNUMBER { 负数模式 }

LOCALE_SNATIVEDIGITS { native ascii 0-9 }

LOCALE_SCURRENCY { 本地货币符号 }

LOCALE_SINTLSYMBOL { 国际货币符号 }

LOCALE_SMONDECIMALSEP { 货币小数点分割符 }

LOCALE_SMONTHOUSANDSEP { 货币千位分割符 }

LOCALE_SMONGROUPING { monetary grouping }

LOCALE_ICURRDIGITS { # local monetary digits }

LOCALE_IINTLCURRDIGITS { # intl monetary digits }

LOCALE_ICURRENCY { positive currency mode }

LOCALE_INEGCURR { negative currency mode }

LOCALE_SDATE { 日期分割符 }

LOCALE_STIME { 时间分割符 }

LOCALE_SSHORTDATE { 短日期字符串 }

LOCALE_SLONGDATE { 长日期字符串 }

LOCALE_STIMEFORMAT { time format string }

LOCALE_IDATE { short date format ordering }

LOCALE_ILDATE { long date format ordering }

LOCALE_ITIME { time format specifier }

LOCALE_ITIMEMARKPOSN { time marker position }

LOCALE_ICENTURY { century format specifier (short date) }

LOCALE_ITLZERO { leading zeros in time field }

LOCALE_IDAYLZERO { leading zeros in day field (short date) }

LOCALE_IMONLZERO { leading zeros in month field (short date) }

LOCALE_S1159 { AM designator }

LOCALE_S2359 { PM designator }

LOCALE_ICALENDARTYPE { type of calendar specifier }

LOCALE_IOPTIONALCALENDAR { additional calendar types specifier }

LOCALE_IFIRSTDAYOFWEEK { first day of week specifier }

LOCALE_IFIRSTWEEKOFYEAR { first week of year specifier }

LOCALE_SDAYNAME1 { long name for Monday }

LOCALE_SDAYNAME2 { long name for Tuesday }

LOCALE_SDAYNAME3 { long name for Wednesday }

LOCALE_SDAYNAME4 { long name for Thursday }

LOCALE_SDAYNAME5 { long name for Friday }

LOCALE_SDAYNAME6 { long name for Saturday }

LOCALE_SDAYNAME7 { long name for Sunday }

LOCALE_SABBREVDAYNAME1 { 星期一的缩写 }

LOCALE_SABBREVDAYNAME2 { 星期二的缩写 }

LOCALE_SABBREVDAYNAME3 { 星期三的缩写 }

LOCALE_SABBREVDAYNAME4 { 星期四的缩写 }

LOCALE_SABBREVDAYNAME5 { 星期五的缩写 }

LOCALE_SABBREVDAYNAME6 { 星期六的缩写 }

LOCALE_SABBREVDAYNAME7 { 星期天的缩写 }

LOCALE_SMONTHNAME1 { long name for January }

LOCALE_SMONTHNAME2 { long name for February }

LOCALE_SMONTHNAME3 { long name for March }

LOCALE_SMONTHNAME4 { long name for April }

LOCALE_SMONTHNAME5 { long name for May }

LOCALE_SMONTHNAME6 { long name for June }

LOCALE_SMONTHNAME7 { long name for July }

LOCALE_SMONTHNAME8 { long name for August }

LOCALE_SMONTHNAME9 { long name for September }

LOCALE_SMONTHNAME10 { long name for October }

LOCALE_SMONTHNAME11 { long name for November }

LOCALE_SMONTHNAME12 { long name for December }

LOCALE_SMONTHNAME13 { long name for 13th month (if exists) }

LOCALE_SABBREVMONTHNAME1 { 一月的缩写 }

LOCALE_SABBREVMONTHNAME2 { 二月的缩写 }

LOCALE_SABBREVMONTHNAME3 { 三月的缩写 }

LOCALE_SABBREVMONTHNAME4 { 四月的缩写 }

LOCALE_SABBREVMONTHNAME5 { 五月的缩写 }

LOCALE_SABBREVMONTHNAME6 { 六月的缩写 }

LOCALE_SABBREVMONTHNAME7 { 七月的缩写 }

LOCALE_SABBREVMONTHNAME8 { 八月的缩写 }

LOCALE_SABBREVMONTHNAME9 { 九月的缩写 }

LOCALE_SABBREVMONTHNAME10 { 十月的缩写 }

LOCALE_SABBREVMONTHNAME11 { 十一月的缩写 }

LOCALE_SABBREVMONTHNAME12 { 十二月的缩写 }

LOCALE_SABBREVMONTHNAME13 { 十三月的缩写(如果有的话) }

LOCALE_SPOSITIVESIGN { 正号 }

LOCALE_SNEGATIVESIGN { 负号 }

LOCALE_IPOSSIGNPOSN { 正号位置 }

LOCALE_INEGSIGNPOSN { 负号位置 }

LOCALE_IPOSSYMPRECEDES { mon sym precedes pos amt }

LOCALE_IPOSSEPBYSPACE { mon sym sep by space from pos amt }

LOCALE_INEGSYMPRECEDES { mon sym precedes neg amt }

LOCALE_INEGSEPBYSPACE { mon sym sep by space from neg amt }

LOCALE_FONTSIGNATURE { font signature }

LOCALE_SISO639LANGNAME { ISO 缩写语言名称 }

LOCALE_SISO3166CTRYNAME { ISO 缩写国家名称 }

继续阅读