我怎么检查用户的计算机的“地区”设置?



主要软件:
主要软件版本: 1.0
主要软件修正版本: N/A
次要软件: N/A

问题: 某些个国家用逗号表示数字分隔符,一些使用另外日期时间格式,并且一些有其他的货币符号。国家之间的这些区别可能造成程序需要一些对接。LabVIEW引入了这种功能。然而,很多这种功能都需要手工编程。怎么您检查关于用户的地区设置的信息(如配置在控制板地方和语言设置Control Panel -> Regional and Language Settings)?

解答: Windows SDK为获得关于用户的地方设置的信息提供一个重要的函数。您可以使用位于(Windows \System32)中的kernel32.dll库中的函数访问得到该信息。

附上例子的怎样使用这个作用。 下面是一个详细的描述怎样使用它。

模板:

FUNCTION int GetLocaleInfoA(ulong locale,ulong lctype,REF string data,int size) &LIBRARY "kernel32.dll"
FUNCTION ulong GetSystemDefaultLCID() LIBRARY "kernel32.dll"

用法:

GetLocaleInfoA( GetSystemDefaultLCID(), LOCALE_SNATIVELANGNAME, ls_str,128)

参数描述:

locale - locale标识符如由GetSystemDefaultLCID()返回

lctype -您所需的关于地区设置的信息如下所示

data-针对函数返回的字符串的指针

size-期望的大小

带描述的lctype常数:

常量 long LOCALE_ILANGUAGE = 1 ' LANGID in hexadecimal digits
常量 long LOCALE_SLANGUAGE = 2 ' Full localized name of the language
常量 long LOCALE_SENGLANGUAGE = 4097 ' Full English U.S. name of the language ISO Standard 639
常量 long LOCALE_SABBREVLANGNAME = 3 ' Abbreviated name of the language, ISO Standard 639
常量 long LOCALE_SNATIVELANGNAME = 4 ' Native name of the language
常量 long LOCALE_ICOUNTRY = 5 ' Country code, based on international phone codes
常量 long LOCALE_SCOUNTRY = 6 ' The full localized name of the country.
常量 long LOCALE_SENGCOUNTRY = 4098 ' The full English U.S. name of the country.
常量 long LOCALE_SABBREVCTRYNAME = 7 ' Abbreviated name of the country ISO Standard 3166.
常量 long LOCALE_SNATIVECTRYNAME = 8 ' Native name of the country.
常量 long LOCALE_IDEFAULTLANGUAGE = 9 ' LANGID for the principal language spoken in this locale.
常量 long LOCALE_IDEFAULTCOUNTRY = 10 ' Country code for the principal country in this locale.
常量 long LOCALE_IDEFAULTCODEPAGE = 11 ' OEM code page associated with the country.
常量 long LOCALE_SLIST = 12 ' Characters used to separate list items.
常量 long LOCALE_IMEASURE = 13 ' 0 for metric system (S.I.) and 1 for the U.S.
常量 long LOCALE_SDECIMAL = 14 ' decimal separator
常量 long LOCALE_STHOUSAND = 15 ' thousand separator
常量 long LOCALE_SGROUPING = 16 ' Sizes for each group of digits to the left of the decimal.
常量 long LOCALE_IDIGITS = 17 ' number of fractional digits
常量 long LOCALE_ILZERO = 18 ' 0 means use no leading zeros; 1 means use leading zeros.
常量 long LOCALE_SNATIVEDIGITS = 19 ' Ten characters equivalent of the ASCII 0-9.
常量 long LOCALE_SCURRENCY = 20 ' local monetary symbol
常量 long LOCALE_SINTLSYMBOL = 21 ' International monetary symbol ISO 4217.
常量 long LOCALE_SMONDECIMALSEP = 22 ' monetary decimal separator
常量 long LOCALE_SMONTHOUSANDSEP = 23 ' monetary thousand separator
常量 long LOCALE_SMONGROUPING = 24 ' monetary grouping
常量 long LOCALE_ICURRDIGITS = 25 ' # local monetary digits
常量 long LOCALE_IINTLCURRDIGITS = 26 ' # intl monetary digits
常量 long LOCALE_ICURRENCY = 27 ' positive currency mode
常量 long LOCALE_INEGCURR = 28 ' negative currency mode
常量 long LOCALE_SDATE = 29 ' date separator
常量 long LOCALE_STIME = 30 ' time separator
常量 long LOCALE_SSHORTDATE = 31 ' short date format string
常量 long LOCALE_SLONGDATE = 32 ' long date format string
常量 long LOCALE_STIMEFORMAT = 4099 ' time format string
常量 long LOCALE_IDATE = 33 ' short date format, 0 M–D–Y,1 D–M–Yr,2 Y–M–D
常量 long LOCALE_ILDATE = 34 ' long date format, 0 M–D–Y,1 D–M–Y,2 Y–M–D
常量 long LOCALE_ITIME = 35 ' time format, 0 AM/PM 12-hr format, 1 24-hr format
常量 long LOCALE_ICENTURY = 36 ' Use full 4-digit century, 0 Two digit.1 Full century
常量 long LOCALE_ITLZERO = 37 ' leading zeros in time field, 0 No , 1 yes
常量 long LOCALE_IDAYLZERO = 38 ' leading zeros in day field, 0 No , 1 yes
常量 long LOCALE_IMONLZERO = 39 ' leading zeros in month field, 0 No , 1 yes
常量 long LOCALE_S1159 = 40 ' AM designator
常量 long LOCALE_S2359 = 41 ' PM designator
常量 long LOCALE_SDAYNAME1 = 42 ' long name for Monday
常量 long LOCALE_SDAYNAME2 = 43 ' long name for Tuesday
常量 long LOCALE_SDAYNAME3 = 44 ' long name for Wednesday
常量 long LOCALE_SDAYNAME4 = 45 ' long name for Thursday
常量 long LOCALE_SDAYNAME5 = 46 ' long name for Friday
常量 long LOCALE_SDAYNAME6 = 47 ' long name for Saturday
常量 long LOCALE_SDAYNAME7 = 48 ' long name for Sunday
常量 long LOCALE_SABBREVDAYNAME1 = 49 ' abbreviated name for Monday
常量 long LOCALE_SABBREVDAYNAME2 = 51 ' abbreviated name for Tuesday
常量 long LOCALE_SABBREVDAYNAME3 = 52 ' abbreviated name for Wednesday
常量 long LOCALE_SABBREVDAYNAME4 = 53 ' abbreviated name for Thursday
常量 long LOCALE_SABBREVDAYNAME5 = 54 ' abbreviated name for Friday
常量 long LOCALE_SABBREVDAYNAME6 = 55 ' abbreviated name for Saturday
常量 long LOCALE_SABBREVDAYNAME7 = 56 ' abbreviated name for Sunday
常量 long LOCALE_SMONTHNAME1 = 57 ' long name for January
常量 long LOCALE_SMONTHNAME2 = 58 ' long name for February
常量 long LOCALE_SMONTHNAME3 = 59 ' long name for March
常量 long LOCALE_SMONTHNAME4 = 60 ' long name for April
常量 long LOCALE_SMONTHNAME5 = 61 ' long name for May
常量 long LOCALE_SMONTHNAME6 = 62 ' long name for June
常量 long LOCALE_SMONTHNAME7 = 63 ' long name for July
常量 long LOCALE_SMONTHNAME8 = 64 ' long name for August
常量 long LOCALE_SMONTHNAME9 = 65 ' long name for September
常量 long LOCALE_SMONTHNAME10 = 66 ' long name for October
常量 long LOCALE_SMONTHNAME11 = 67 ' long name for November
常量 long LOCALE_SMONTHNAME12 = 68 ' long name for December
常量 long LOCALE_SABBREVMONTHNAME1 = 69 ' abbreviated name for January
常量 long LOCALE_SABBREVMONTHNAME2 = 70 ' abbreviated name for February
常量 long LOCALE_SABBREVMONTHNAME3 = 71 ' abbreviated name for March
常量 long LOCALE_SABBREVMONTHNAME4 = 72 ' abbreviated name for April
常量 long LOCALE_SABBREVMONTHNAME5 = 73 ' abbreviated name for May
常量 long LOCALE_SABBREVMONTHNAME6 = 74 ' abbreviated name for June
常量 long LOCALE_SABBREVMONTHNAME7 = 75 ' abbreviated name for July
常量 long LOCALE_SABBREVMONTHNAME8 = 76 ' abbreviated name for August
常量 long LOCALE_SABBREVMONTHNAME9 = 77 ' abbreviated name for September
常量 long LOCALE_SABBREVMONTHNAME10 = 78 ' abbreviated name for October
常量 long LOCALE_SABBREVMONTHNAME11 = 79 ' abbreviated name for November
常量 long LOCALE_SABBREVMONTHNAME12 = 80 ' abbreviated name for December
常量 long LOCALE_SABBREVMONTHNAME13 = 4111 ' Native abbreviated name for 13th month, if it exists.


相关链接: AE KB 40AEL7GJ: European doubles using comma with Read From Spreadsheet File.vi

附件:



regional.vi - regional.vi


报告日期: 08/21/2006
最近更新: 08/23/2006
文档编号: 40HDT1GJ