2016-06-15 19 views
-2

Wie kann ich feststellen, welche Taste in C++ mit WINAPI auf der Tastatur gedrückt wird?Wie kann ich feststellen, welche Taste auf der Tastatur gedrückt wird? C++

Ich versuche, GetAsyncKeyState zu verwenden, aber es funktioniert nur für genau einen Schlüssel, und ich muss wählen, welcher, aber ich muss keySode erhalten, um es über TCP zu senden.

+1

Wenn Sie die Manpage für 'GetAsyncKeyState' lesen, sehen Sie sie [verbindet Sie mit GetKeyboardState] (https://msdn.microsoft.com/en-us/library/windows/desktop/ms646299 (v = vs. 85) .aspx) –

+0

Hängt davon ab, ob Sie in einer Konsolenanwendung oder einer GUI-App sind. –

Antwort

1

Schleife über jeden Charakter und versuchen, jeder:

for (char i = 32; i < 127; i++) 
    if (GetAsyncKeyState (i)) 
     /* Do whatever you want with that character */; 

Im Beispiel I Schleife nur von ‚‘ zu ‚~‘, ändern Sie es, wie Sie wollen.

+1

Es ist 'GetAsyncKeyState', mit einem Großbuchstaben' G'. Aber Sie müssen es sowieso nicht in einer Schleife aufrufen, da [GetKeyboardState] (https://msdn.microsoft.com/en-us/library/windows/desktop/ms646299.aspx) die Schlüsselzustände zurückgibt für die gesamte Tastatur. – IInspectable

+0

@Intspectable Ja, aber "GetKeyboardState" stimmt mit "GetKeyState" überein, das eine andere Semantik als "GetAsyncKeyState" hat. Welche Semantik der Fragesteller braucht, ich glaube nicht, dass wir uns sicher sein können. –