Nachricht abfangen
-
Hallo,
wie kann ich ALLE Tastatureingaben mit der Nachrichtenschleife abfangen?Danke!
-
WM_KEYDOWN, WM_CHAR
-
Ich glaube er sucht eher das hier http://www.c-plusplus.net/forum/viewtopic-var-t-is-39383.html
schirrmie
-
WM_CHAR wird IMHO erst durch TranslateMessage erzeugt und landet nicht in der Message Queue. Man kann die WM_KEY* Nachrichten über PreTranslateMessage abfangen oder mit Hoks aus der MessageQueue lesen, oder man setzt einen Lowlevel Hook für die Tastatur ein.
-
Kann ich bei WM_KEYDOWN auch irgendwie abfragen, welche Taste gedrückt wurde?
-
Wäre ja irgendwie dumm wenn nicht

guck dir wParam und lParam an. Für weitere Infos schau bitte in die MSDN (das hättest auch vor dem Post schon machen sollen!)schirrmie
-
Sry, habs schon. (Hätte ja nur nachschauen müssen
)Mal noch eine Frage. Die Nachricht bekomme ich ja nur wenn in meinem Programm
eine Taste gedrückt wird. Kann ich eine Nachricht bekommen egal in welchem
Fenster eine Taste gedrückt wird?
-
Nein, nur das Fenster bzw. die Applikation welches gerade den Eingabefokus hat.
Ansonsten müßtest Du Hook-Techniken anwenden.
Oder alternativ auch mit AttachThreadInput(), wenn Du weißt wer den aktuellen Fokus hat.Martin
-
Kann man denn irgendwie herausfinden, wer momentan den Fokus hat?
-
guck dir meinen Link an. Das ist ein TOP FAQ eintrag hier im Forum

damit bekommst du alle Tastaturnachrichten.schirrmie
-
D schrieb:
Kann man denn irgendwie herausfinden, wer momentan den Fokus hat?
GetFocus
.
-
CodeFinder schrieb:
D schrieb:
Kann man denn irgendwie herausfinden, wer momentan den Fokus hat?
GetFocus
.Oder je nach Problemstellung kann auch GetForegroundWindow() helfen.
Martin
-
Nicht, wenn er den Focus sucht.
-
GetFocus geht aber nicht aus anderen Threads!