![]() |
Tastaturlayout systemweit ändern ohne Neustart
Hallo,
ich möchte unter Windows XP (bzw. PE) aus meinem Programm heraus von der deutschen auf die amerikanische Tastatur umschalten. Mit dem API-Befehl SystemParametersInfo sollte das eigentlich möglich sein, folgenden Code habe ich geschrieben:
Delphi-Quellcode:
Bei der Abfrage der Keyboardinformationen bekomme ich das aktuelle Keyboardlayout zurück (1031 bzw. 0x407), das Einstellen funktioniert jedoch leider nicht (Fehlermeldung 'No changes possible').
procedure TPEConfigForm.Button1Click(Sender: TObject);
var Tastatur_HKL: HKL; LW, HW: Word; begin if not SystemParametersInfo(SPI_GETDEFAULTINPUTLANG, 0, @Tastatur_HKL, SPIF_SENDCHANGE) then Application.MessageBox(PChar('No query possible'), 'ERROR', 0); LW := StrToInt('$' + '00000409'); {HexCode für US-Tastatur, als Integer 1033} HW := HiWord(Tastatur_HKL); Tastatur_HKL := MakeLong(LW, HW); if not SystemParametersInfo(SPI_SETDEFAULTINPUTLANG, 0, @Tastatur_HKL, SPIF_UPDATEINIFILE or SPIF_SENDCHANGE) then Application.MessageBox(PChar('No changes possible'), 'ERROR', 0); end; Hat jemand eine Idee, wie es funktionieren könnte? Vielen Dank, Boris [edit=Luckie] Mfg, Luckie[/edit] |
Re: Tastaturlayout systemweit ändern ohne Neustart
Hier ist es schon relevant, ob es XP oder PE ist!!!
Dein PE hat möglicherweise nicht die Lokalisierungsoptionen mitinstalliert bekommen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:43 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz