Rubrik: System/Windows · Computer/Benutzer/Ländereinstellungen | VB-Versionen: VB4, VB5, VB6 | 10.10.02 |
System-Spracheinstellung ermitteln Mit der universellen GetLocaleInfo-API lässt sich u.a. auch die im System eingestellte Sprache ermitteln. | ||
Autor: Dieter Otter | Bewertung: | Views: 25.163 |
www.tools4vb.de | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Länderspezifische System-Einstellungen lassen sich schnell über die GetLocaleInfo-API ermitteln, u.a. auch die eingestellte Sprache.
' benötigte API-Deklaration 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
' System-Einstellung ermitteln Private Function GetSystemLocaleInfo( _ ByVal LocaleID As Long) As String Const SYSTEM_DEFAULT As Long = &H800 Dim sBuffer As String Dim nResult As Long ' Rückgabestring füllen sBuffer = Space$(255) nResult = GetLocaleInfo(SYSTEM_DEFAULT, LocaleID, _ sBuffer, Len(sBuffer)) If nResult > 0 Then GetSystemLocaleInfo = Left$(sBuffer, nResult - 1) End If End Function
Für das Ermitteln der "Sprach-Einstellung" ist die Konstante LOCALE_SLANGUAGE zuständig. Hiermit lässt sich die nationale Bezeichnung ermitteln. Möchten Sie lieber die englische Bezeichnung, so verwenden Sie die Konstante LOCALE_SENGLANGUAGE.
' Sprach-Einstellung (nationale Bezeichnung) Const LOCALE_SLANGUAGE = &H2 Dim sLanguage As String sLanguage = GetSystemLocaleInfo(LOCALE_SLANGUAGE) MsgBox sLanguage
' Sprach-Einstellung (engl. Bezeichnung) Const LOCALE_SENGLANGUAGE = &H1001 Dim sLanguage As String sLanguage = GetSystemLocaleInfo(LOCALE_SENGLANGUAGE) MsgBox sLanguage