Ziel:
1.) Liste der innerhalb Windows installierten Keyboards "laden" und im Klartext anzeigen ( Deustch (Deutschland) / English (USA) / usw...)
2.) auf ein beliebiges der in dieser Liste angegebenen (und damit instalierten) Keyboard-Layouts umschalten.
Irgendwo fehlt mir da noch etwas
zu 1.) Laden der Liste mache ich so
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| Var count : Integer; MyLang: PChar;
begin GetMem(MyLang, Size); Count:=GetKeyboardLayoutList(16, Layouts);
Memo1.Clear; Memo2.Clear; for i:=0 to Count-1 do begin VerLanguageName(Layouts[i], MyLang, Size); Memo1.Lines.Add(StrPas(MyLang)); Memo2.Lines.Add(IntToStr(Layouts[i])); end;
end; |
soweit so gut, aber mein Problem ist das "umschalten" auf eines der Layouts in der Liste.
Die zu verwendende Prozedur ist ist klar: LoadKeyboardLayout(pcKeyboard, KLF_ACTIVATE);
wobei pcKeayboard eine String-Konstante aus einer Liste ist
(zb '00000409' - english, ', '00000407' - german, ...)
ich möchte aber "nur genau die pcKeyboard's" verwenden die zu meiner oben erstellten Liste gehören
folgender Code funktioniert leider nicht
Delphi-Quelltext
1:
| LoadKeyboardLayout(PChar(IntToStr(Layouts[0])), KLF_ACTIVATE); |
lG Martin