Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Tastaturlayout systemweit ändern ohne Neustart (https://www.delphipraxis.net/8585-tastaturlayout-systemweit-aendern-ohne-neustart.html)

Boris 8. Sep 2003 13:57


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:
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;
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').

Hat jemand eine Idee, wie es funktionieren könnte?

Vielen Dank,

Boris

[edit=Luckie] Mfg, Luckie[/edit]

Assarbad 2. Okt 2003 21:29

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