Rubrik: System/Windows · Computer/Benutzer/Ländereinstellungen | VB-Versionen: VB4, VB5, VB6 | 01.11.00 |
Ländereinstellungen ermitteln Mittels der Windows-API können Sie ganz leicht feststellen, welche Ländereinstellungen (Währung, etc.) eingestellt sind. | ||
Autor: Dieter Otter | Bewertung: | Views: 28.317 |
www.tools4vb.de | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Schreiben Sie eine Anwendung, bei der Sie wissen müssen, welche Ländereinstellungen in der Systemsteuerung eingestellt sind oder möchten einfach nur die Währungseinheit ermitteln? Mit Hilfe einiger API-Funktionen können Sie die Einstellungen ganz leicht ermitteln.
Private Declare Function GetThreadLocale Lib "kernel32" () As Long Private Declare Function GetSystemDefaultLCID Lib "kernel32" () As Long Private 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 Private Function GetUserLocaleInfo(ByVal dwLocaleID As Long, _ ByVal dwLCType As Long) As String Dim sReturn As String Dim Result As Long Result = GetLocaleInfo(dwLocaleID, dwLCType, sReturn, _ Len(sReturn)) If Result Then sReturn = Space$(Result) Result = GetLocaleInfo(dwLocaleID, dwLCType, sReturn, _ Len(sReturn)) If Result Then GetUserLocaleInfo = left$(sReturn, Result - 1) End If End If End Function
Der nachfolgende Code ermittelt das im System eingestellte Land. Hierbei wird die offizielleinternationale Telefonvorwahl (Landesvorwahl) ermittelt. Anhand des Rückgabewertes kann dannleicht das Land im Klartext ermittelt werden.
' internationale Telefonvorwahl ermitteln Const LOCALE_ICOUNTRY = &H5 Const LOCALE_SCOUNTRY = &H6 Dim LCID As Long Dim telVorwahl As Long LCID = GetSystemDefaultLCID() telVorwahl = GetUserLocaleInfo(LCID, LOCALE_ICOUNTRY) ' Beispiel ' 31 = Niederlande (0031) ' 34 = Spanien (0034) ' 41 = Schweiz (0041) ' 45 = Dänemark (0045) ' 49 = Deutschland (0049) ' usw.
Der nachfolgende Code ermittelt das eingestellte Währungskürzel, das Dezimal- undTausender-Trennzeichen, sowie die Anzahl der Währungs-Nachkommastellen
Const LOCALE_SCURRENCY = &H14 Const LOCALE_SINTLSYMBOL = &H15 Const LOCALE_SMONDECIMALSEP = &H16 Const LOCALE_SMONTHOUSANDSEP = &H17 Const LOCALE_SMONGROUPING = &H18 Const LOCALE_ICURRDIGITS = &H19 Dim LCID As Long ReDim Daten(6) As String LCID = GetSystemDefaultLCID() ' Nationale Währungseinheit (max. 6 Stellen): DM Daten(1) = GetUserLocaleInfo(LCID, LOCALE_SCURRENCY) ' Internationale Währungseinheit (max. 3 Stellen): DEM Daten(2) = GetUserLocaleInfo(LCID, LOCALE_SINTLSYMBOL) ' Dezimal-Trennzeichen: , Daten(3) = GetUserLocaleInfo(LCID, LOCALE_SMONDECIMALSEP) ' Tausender-Trennzeichen: . Daten(4) = GetUserLocaleInfo(LCID, LOCALE_SMONTHOUSANDSEP) ' Anzahl Stellen je Gruppe: 3;0 Daten(5) = GetUserLocaleInfo(LCID, LOCALE_SMONGROUPING) ' Anzahl Nachkommastellen: 2 Daten(6) = GetUserLocaleInfo(LCID, LOCALE_ICURRDIGITS)