Einzelnen Beitrag anzeigen

HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
961 Beiträge
 
Delphi 6 Professional
 
#11

AW: Globaler Tastaturhook für eine bestimmte Tastatur

  Alt 23. Sep 2022, 19:42
Hmm..

Hallo,

stimmt, es gibt ja jetzt GetIt. Hab mit Turbo Pascal angefangen und lange Zeit in der alten Firma noch mit XE7 gearbeitet. Das hat sich noch nicht so in den Kopf gebrannt. Ich mache das im Moment eher als Hobby nebenbei und habe über diese Quelle gar nicht nachgedacht.

@HolgerX Für die Blockade einer Tastatureingabe benötigt man keine DLL. Das geht auch in jedem normalen Programm. Mein Code vom Eingangspost musst nur um ein Exit(1); ergänzt werden, dann sind keine Eingaben mehr möglich.

Ich schaue trotzdem mal, ob man mit der Methode GetRawInputDeviceInfo irgendwas erreichen kann. Wobei das eher so aussieht, als wenn man sich hier mit eher vorab Devices auflisten kann. Im Keydown bzw. Keyup Event steht dann ja leider keine Device ID zur Verfügung. Eventuell gibt es aber doch noch mehr Informationen. Ex, Ex2, Ex3 lässt grüßen. Mal gucken ob man TKeyboardLowLevelHookStruct also noch erweitern kann.
Die DLL benötigst Du, wenn du 'Global', also auch für andere Applikationen die Tastatureingabe abfangen willst.
Auch bekommst Du hier mit deinem LowLevelHookStruct/SetWindowsHookEx keine DeviceInfos. Dies geht nur per RawInputDevices.

Mit GetRawInputDeviceInfo kannst Du innerhalb der WM_INPUT (nach RegisterRawInputDevices) arbeiten, da in der Message ein Handle enthalten ist, mit dem Du per GetRawInputData ein RAWINPUT mit RAWINPUTHEADER erhältst. Damit dann per GetRawInputDeviceInfo z.B. den HIDName holen und damit das Device identifizieren.

Mit Keydown bzw. Keyup kannst Du hier nichts anfangen....
(Ja ich Verwende Delphi 6 Pro und will NICHT wechseln!)

Geändert von HolgerX (23. Sep 2022 um 19:45 Uhr)
  Mit Zitat antworten Zitat