PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : C++ Tastatureingaben im Hintergrund abhören.


PatkIllA
2006-06-15, 00:18:26
Ich möchte ein kleines Programm ohne GUI schreiben, das im Hintergrund läuft und bei bestimmten Tastenkombinationen einige Funktionen ausführt. Um klar zustellen, dass ich keinen Keylogger schreiben möchte, sollen genau die Tastenkombinationen, auf die das Programm reagiert nicht mehr bei der Anwendung im Vordergrund "ankommen". Idealerweise kann man auch noch nach Drücken und Loslassen unterscheiden.
Ich hab aber gar keine Ahnung, womit ich das machen kann oder wo ich nach Suchen muss.
Vielleicht hat ja einer mal das richtige Stichwort.

Trap
2006-06-15, 00:33:26
Das ist OS-spezifisch.

Für Windows solltest du dir das angucken: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winprog/winprog/functions_by_category.asp
und evtl. das http://msdn.microsoft.com/archive/default.asp?url=/archive/en-us/directx9_c/directx/input/directinputroadmap.asp

PatkIllA
2006-06-15, 10:10:28
Geht um Windows, hat ich vergessen.
Zum Auslesen hab ich auch schon was gefunden(unter anderem auch DirectInput), aber zum selektiven Blocken der Eingabe hab ich nicht mal einen Ansatz gefunden.

SgtTynis
2006-06-15, 12:56:50
Vieleicht hilf das: Disabling Disabling Shortcut Keys in Games (MSDN) (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/directx9_c/Disabling_Shortcut_Keys_in_Games.asp)

maniac103
2006-06-15, 14:58:55
Ich denke mal, das hier dürfte das Gewünschte sein:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/hooks/hookreference/hookfunctions/setwindowshookex.asp

Du suchst dabei WH_KEYBOARD_LL ... und zum unterdrücken der Eingabe muss deine LowLevelKeyboardProc-Implementierung einen Wert ungleich 0 zurückliefern.