Windows Messages Abfangen

Perdan

Mitglied
Hi zusammen,

ich bin seit langem mal wieder bei der MFC Programmierung und habe ein kleines Problem.
Ich will, dass mein Programm auf eine Tastatureingabe reagiert obwohl es keinen Fokus hat. Innherhal meines Programms ist dies ja kein Problem, da nutze ich die PreTranslateMessage(MSG* pMsg) Funktion. Nur leider bekomme ich so nur Nachrichten wenn ich auch den Fokus innerhalb meines Programms habe.

System:
Dialoganwendung
Visual Studio 2010
MFC / C++
Win 7

Es wäre super, wenn Ihr mir einen Tipp geben könntet wie ich Tastendrücke Abfangen kann ohne das mein Programm den Fokus hat.

Vielen Dank

Perdan
 

saftmeister

Nutze den Saft!
Das dürfte nicht so ohne weiteres funktionieren. Windows sendet die Nachricht immer das an das Fenster, was den Fokus hat. Das Fenster kann dann auf die Nachricht reagieren oder nicht. Was du vorhast, ist eine Injektion bzw. ein Hook. Man müsste folgendermaßen vorgehen:

- Adresse von Callback-Prozeduren auf allen (momentan verfügbaren) Fenstern holen und merken
- Adresse der Callback-Prozeduren durch eine eigene ersetzen
- In der eigenen Callback-Prozedur zuerst Nachrichten entsprechend verarbeiten oder an die gemerkte Callback für das bestimmte Window senden (übergeben)

Oder willst du einen Keylogger programmieren?
 

Perdan

Mitglied
Hi,

danke für die Antwort. Es soll kein Keylogger im eigentliche sinne werden. Ich habe ein Programm welches ich debuggen muss. Dazu muss ich das eigentliche Programm bedienen und die Tastatureingaben zusammen mit den Ausgaben aufzeichnen.

Ich werde mich mal auf den Gebieten die Du angesprochen hast schlau machen.

Um weitere Ideen wäre ich noch dankbar.

MfG

Perdan
 

Neue Beiträge