In Windows XP gibts drei Möglichkeiten um die Systemsprache auszulesen. Zum einen unter HKEY_LOCAL_MACHINE\System\CurrentControlset\Control\Nls\Language gibt es das den Wert "InstallLanguage". Bei einem Deutschen XP steht hier als Wert 0407. Dann gibt's die sogenannten Default Language die unter HKEY_LOCAL_MACHINE\System\CurrentControlset\Control\Nls\Language\"Default" zu finden sind. Bei Multilanguage Systemen gibt es noch den folgenden Wert
HKEY_CURRENT_USER\Control Panel\Desktop\"MultiUILanguageId" der die Spracheinstellungen des Dekstops des aktuellen Users anzeigt. Bei normalen XP Systemen gibt es den Wert nicht.
In dem folgenden Batch File werden alle drei Werte ausgelesen und angezeigt.
- @echo off
- :: Abfrage und Anzeige der Windows Sprache
- for /F "tokens=2* skip=4 usebackq" %%f in (`reg query "HKEY_LOCAL_MACHINE\System\CurrentControlset\Control\Nls\Language" /v "InstallLanguage"`) do @set x9=%%g
- set InstallLanguage=%x9:ü=%
- for /F "tokens=2* skip=4 usebackq" %%f in (`reg query "HKEY_LOCAL_MACHINE\System\CurrentControlset\Control\Nls\Language" /v "Default"`) do @set x10=%%g
- set DefaultLanguage=%x10:ü=%
- for /F "tokens=2* skip=4 usebackq" %%f in (`reg query "HKEY_CURRENT_USER\Control Panel\Desktop" /v "MultiUILanguageId"`) do @set x11=%%g
- set UserProfileLanguage=%x11:~-4%
- if "%InstallLanguage%"=="0407" (
- set InstallLanguage=0407 German
- )
- if "%InstallLanguage%"=="0409" (
- set InstallLanguage=0409 English-US
- )
- if "%InstallLanguage%"=="040A" (
- set InstallLanguage=040A Spain
- )
- if "%InstallLanguage%"=="040C" (
- set InstallLanguage=040C French
- )
- if "%InstallLanguage%"=="040E" (
- set InstallLanguage=040E Ungarisch
- )
- if "%InstallLanguage%"=="0410" (
- set InstallLanguage=0410 Italienisch
- )
- if "%InstallLanguage%"=="0415" (
- set InstallLanguage=040E Polnisch
- )
- if "%InstallLanguage%"=="0418" (
- set InstallLanguage=0418 Rumänisch
- )
- if "%InstallLanguage%"=="0419" (
- set InstallLanguage=0419 Russisch
- )
- echo Install-Sprache ist %InstallLanguage%
- echo Default Sprache ist %DefaultLanguage%
- if "%UserProfileLanguage%"=="~-4" (
- echo No Multi-Language System detected!
- )
- if "%UserProfileLanguage%" NEQ "~-4" (
- echo Aktuelle User Sprache ist %UserProfileLanguage%
- )
- pause











