Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#3

AW: TTouchkeyboard in verschiedenen Forms

  Alt 15. Nov 2024, 22:53
Da beim Anklicken das Fenster den Fokus bekommt, kann die Eingabe auch nur in diesem Fenster landen.

Selbst wenn man jetzt die Eingabe abfangen würde, dann wüsste dieses Keyboard / dein Code aber auch nicht mehr, dass vorher ein anderes Fenster den Fokus hatte.


Keyboard auf eine eigene Form, welche beim Klick in den Clientbereich nie den Fokus bekommen darf.
Oder das Keyboard vom Windows nutzen.
C:\Windows\System32\osk.exe

SW_SHOWNOACTIVATE, WS_POPUPWINDOW und irgendwie sowas.


Delphi-Quellcode:
uses Winapi.ShellAPI;

procedure TForm2.Button1Click(Sender: TObject);
begin
  // Lässt sich so aber nicht aus einen Win32-Programm aufrufen ... nur Win64,
  // oder du fängst an bissl zu pfuschen.
  ShellExecute(Self.Handle, nil, {'C:\Windows\System32\osk.exe'}'osk.exe', nil, nil, SW_SHOW);
end;

procedure TForm2.Button2Click(Sender: TObject);
begin
  keybd_event(VK_LWIN, 0, 0, 0);
  keybd_event(VK_OEM_PERIOD, 0, 0, 0);
  keybd_event(VK_OEM_PERIOD, 0, KEYEVENTF_KEYUP, 0);
  keybd_event(VK_LWIN, 0, KEYEVENTF_KEYUP, 0);
end;
Liegt aber nicht am Delphi.
https://stackoverflow.com/questions/...ton-in-c-sharp
https://www.delphipraxis.net/215802-...dows-11-a.html

Und selbst die uralte virtuelle Tastatur 'TapTip.exe' ist nur noch im Win64 verfügbar.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (15. Nov 2024 um 23:18 Uhr)
  Mit Zitat antworten Zitat