天天看點

用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 縮寫國家名稱 }

繼續閱讀