Ich habe in der Eingabegebietsschemaleiste (Windows XP) mehrere Sprachen eingestellt (Deutsch, Russische, Serbisch…).
Eigentlich sollte sich die Windows Codepage jedes mal ändern, wenn ich eine andere Sprache auswähle. Welche Codepage verwendet wird, ist ja meines Wissens in der Registry („HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage -> ACP“ ) abgelegt. Wenn ich in der Systemsteuerung->Regions- und Sprachoptionen->Sprache->Details zb Russisch als mein Standard-Eingabegebietsschema einstelle und den PC neustarte, steht unter ACP (s.o) in der Registry noch immer 1252.
Das bedeutet, dass sich die Registry nicht ändert. Wie kann ich dann zuverlässig auslesen, welche Windows Codepage gerade benutzt wird?
Hallo.
Ich habe leider keine genaue Ahnung.
Laut der Microsoft Datenbank (http://support.microsoft.com/kb/102987/de ) steht dieser Schlüssel nur für die installierten Codepages. Die aktive Codepage scheint sich darüber nicht abfragen zu lassen.
Wenn du aber den passenden Registry Schlüssel dafür herausfinden möchtest, könntest du aus den MS Sysinternals die Regmon.exe benutzen, die die Registry beobachtet während du von hand dann die Codepage wechselst…
Hi,
in der Codepage 1252 (ISO 8859) definiert 15 verschiedene Zeichensätze, darunter auch kyrillisch. Also muss die CP sich nicht ändern, wenn der Schriftsatz des geänderten Eingabegebietsschemas in der bisherigen CP schon definiert ist
Ausserdem sollte nicht (wenn eine Änderung überhaupt nötig ist) das ControlSet unter HKLM geändert werden, das betrifft nämlich - wie der Keyname schon sagt - Maschineneinstellungen, sondern untezr HKEY_CURRENT_USER, weil die Änderungen sich auf den gerade angemeldeten User beziehen
Das Tasturlayout (das über das Eingabegebietsschemas geändert wird) wird übrigens in einem anderen Registry-Zweig gespeichert, nämlich unter HKEY_CURRENT_USER\Keyboard Layout