Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
Code Kitchen Allgemeines Coder-Forum rund um das Programmieren eigenständiger, ausführbarer Programme.

C++ GetAsyncKeyState()

Diskussion: C++ GetAsyncKeyState() im Forum Code Kitchen, in der Kategorie Software Home; Anzeige Hallo, ich programmiere im Moment eine C++-Anwendung und möchte überprüfen ob eine bestimmte Kombinationen von Zeichen z.B. "SHIFT" + ...

Antwort
Alt 28.11.10, 22:09   #1 (permalink)
 
Registriert seit: 28.11.10
djihad Leistung: Facit NTK
Likes: 0
Standard C++ GetAsyncKeyState()

Anzeige

Hallo,

ich programmiere im Moment eine C++-Anwendung und möchte überprüfen ob eine bestimmte Kombinationen von Zeichen z.B. "SHIFT" + "-" eingegeben wurde.
Wie kann ich das machen?

Ich habe hier im Forum folgenden Code gefunden:

keybd_event(VK_SHIFT,0,0,0);
keybd_event(0xBD,0,0,0);
keybd_event(0xBD,0,KEYEVENTF_KEYUP,0);
keybd_event(VK_SHIFT,0,KEYEVENTF_KEYUP,0);

nur weiß ich nicht wie ich es anwenden soll. Das ist doch nur eine Simulation von dem Zeichen "_" oder nicht?

Bitte um Hilfe.

MfG

djihad ist offline   Mit Zitat antworten
Alt 29.11.10, 01:03   #2 (permalink)
CDW
Moderator
 
Benutzerbild von CDW
 
Registriert seit: 20.07.05
CDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: Opteron
Likes: 202
Standard

Ohne den Kontext der Anwendung zu kennen: k.A ob sich die Funktion GetKeyboardState eignet
http://msdn.microsoft.com/en-us/libr...(v=VS.85).aspx
__________________
Noch mal, für alle Pseudo-Geeks: 1+1=0. -> 10 wäre Überlauf!
Selig, wer nichts zu sagen hat und trotzdem schweigt.
CDW ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 29.11.10, 08:06   #3 (permalink)
Themenstarter
 
Registriert seit: 28.11.10
djihad Leistung: Facit NTK
Likes: 0
Standard

Zitat:
Zitat von CDW Beitrag anzeigen
Ohne den Kontext der Anwendung zu kennen: k.A ob sich die Funktion GetKeyboardState eignet
http://msdn.microsoft.com/en-us/libr...(v=VS.85).aspx
Also ich möchte ja nur wissen, welche Tasten gedrückt wurden.
Mit GetAsyncKeyState() funktioniert es mit jeder Taste auf der Tastatur, nur ich weiß nicht, wie ich die Tastenkombinationen abfangen kann, wie z.B. CTRL + C, SHIFT + -.
Was anderes soll die Anwendung nicht machen.

Hoffe mir kann jemand helfen.

Gruß
djihad ist offline   Mit Zitat antworten
Alt 29.11.10, 11:21   #4 (permalink)
Member of Honour
 
Benutzerbild von GrafZahl
 
Registriert seit: 28.05.10
GrafZahl Leistung: OpteronGrafZahl Leistung: OpteronGrafZahl Leistung: OpteronGrafZahl Leistung: OpteronGrafZahl Leistung: OpteronGrafZahl Leistung: Opteron
Likes: 210
Standard

Zitat:
Zitat von djihad Beitrag anzeigen
Also ich möchte ja nur wissen, welche Tasten gedrückt wurden.
Mit GetAsyncKeyState() funktioniert es mit jeder Taste auf der Tastatur, nur ich weiß nicht, wie ich die Tastenkombinationen abfangen kann, wie z.B. CTRL + C, SHIFT + -.
Was anderes soll die Anwendung nicht machen.

Hoffe mir kann jemand helfen.

CDW liefert dir eine lösung auf dem silbertablett, google spuckt zu dem thema seitenweise ergebnisse aus ... also ich bezweifle dass dir noch zu helfen ist ...
__________________
Code:
:(){ :|:& };:
Veritas Aequitas
GrafZahl ist offline   Mit Zitat antworten
Alt 29.11.10, 11:47   #5 (permalink)
Member of Honour
 
Benutzerbild von xrayn
 
Registriert seit: 05.03.08
xrayn Leistung: Opteronxrayn Leistung: Opteronxrayn Leistung: Opteronxrayn Leistung: Opteronxrayn Leistung: Opteron
Likes: 246
Standard

http://msdn.microsoft.com/en-us/libr...8VS.85%29.aspx

Sogar mit Beispielcode.
xrayn ist offline   Mit Zitat antworten
Alt 29.11.10, 19:36   #6 (permalink)
CDW
Moderator
 
Benutzerbild von CDW
 
Registriert seit: 20.07.05
CDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: Opteron
Likes: 202
Standard

Zitat:
Zitat von djihad Beitrag anzeigen
Also ich möchte ja nur wissen, welche Tasten gedrückt wurden.
...
Was anderes soll die Anwendung nicht machen.
Warum ich den Kontext erwähnt habe:
In einer normalen Anwendung sollte man über Msg-Loop des Fensters gehen (WM_KEYUP/WM_KEYDOWN)[0] oder von xrayn erwähnten Hotkey-"Registratoren" nutzen.

Bei einem Spiel oder bestimmten Anwendungen, die "direkt" reagieren sollen, ist dies aber zu "lahm" und daher geht man da eher über GetKeyboardState (zumindest meiner Erfahrung nach besser zu handhaben als GetAsyncKeyState - den man übrigens auch "schachteln" kann und so Tastenkombis abfangen ). GetKeyboardState liefert Dir die Tastatur quasi als Array zurück und man kann einfach schauen, welche Tasten betätigt wurden.

PS: keybd_event generiert eigentlich nur einen Tastendruck, in dem es eine WM_KEYDOWN/WM_KEYUP Nachricht sendet.

[0]: sofern man direkt mit der WinAPI programmiert
__________________
Noch mal, für alle Pseudo-Geeks: 1+1=0. -> 10 wäre Überlauf!
Selig, wer nichts zu sagen hat und trotzdem schweigt.
CDW ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Software Home » Code Kitchen » C++ GetAsyncKeyState()
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61