Entwickler-Ecke

Windows API - Tastatursprache - ändern


Rupert - Do 17.11.11 14:25
Titel: Tastatursprache - ändern
Unter Windows geschieht dies mit der Eingabegebietsschema-Leiste
z.B:
linke_Alt-Umschalt-0 ist die deutsche Tastatur
linke_Alt-Umschalt-1 ist die tschechische Tastatur
Strg-Umschalt toggelt zwischen den beiden Einstellungen

Wie kann ich das aus einer Delphi Applikation heraus steuern?


Moderiert von user profile iconNarses: Topic aus Sonstiges (Delphi) verschoben am Do 17.11.2011 um 14:47


Delete - Do 17.11.11 14:49

Kurze Suche mit Google: http://www.swissdelphicenter.ch/de/showcode.php?id=1045


Rupert - Do 17.11.11 16:13

Vielen Dank für den Hinweis!
Funktioniert - perfekt
Hier die Codes der Tastaturen 8 bit hex

Zitat:
00000402 Bulgarian
0000041a Croatian
00000405 Czech
00000406 Danish
00000413 Dutch (Standard)
00000813 Dutch (Belgian)
00000409 English (United States)
00000809 English (United Kingdom)
00001009 English (Canadian)
00001409 English (New Zealand)
00000c09 English (Australian)
0000040b Finnish
0000040c French (Standard)
0000080c French (Belgian)
0000100c French (Swiss)
00000c0c French (Canadian)
00000407 German (Standard)
00000807 German (Swiss)
00000c07 German (Austrian)
00000408 Greek
0000040e Hungarian
0000040f Icelandic
00001809 English (Irish)
00000410 Italian (Standard)
00000810 Italian (Swiss)
00000414 Norwegian (Bokmal)
00000814 Norwegian (Nynorsk)
00000415 Polish
00000816 Portuguese (Standard)
00000416 Portuguese (Brazilian)
00000418 Romanian
00000419 Russian
0000041b Slovak
00000424 Slovenian
0000080a Spanish (Mexican)
0000040a Spanish (Traditional Sort)
00000c0a Spanish (Modern Sort)
0000041d Swedish
0000041f Turkish


und der Programmcode


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
procedure TMainForm.Tastaturwahl(Sender: TObject);
begin
  case Spracheinstellung of
    1: Tastaturlayout_aendern(Sender,'00000809'); // Englisch
    2: Tastaturlayout_aendern(Sender,'0000040C'); // Französisch
    3: Tastaturlayout_aendern(Sender,'00000407'); // latein = Deutsch
    4: Tastaturlayout_aendern(Sender,'00000410'); // Itaienisch
    5: Tastaturlayout_aendern(Sender,'00000C0A'); // spanisch
    6: Tastaturlayout_aendern(Sender,'00000419'); // Russisch
    7: Tastaturlayout_aendern(Sender,'00000405'); // Tschechisch
    8: Tastaturlayout_aendern(Sender,'0000040E'); // Ungarisch
    9: Tastaturlayout_aendern(Sender,'00000424'); // Slowenisch
      end{ of Spracheinstellung }
end;

//********************************************************************************

Procedure TMainForm.Tastaturlayout_aendern(Sender: TObject; LangIdentifier:String);

begin
  LoadKeyboardLayout(PChar(LangIdentifier), KLF_ACTIVATE);
end;