2016-03-24 6 views
-2

Beim Lesen eines Skripts zum Protokollieren, welche Taste auf der Tastatur (Windows-Plattform) gedrückt wird, habe ich das folgende Snippet gefunden. Ich habe bereits das msdn-Dokument auf GetAsyncKeyState() gelesen und suchte nach der Erklärung, fand aber keine befriedigende Antwort. Vielen Dank im Voraus :)C GetAsyncKeyState Parameter und Werte

if (GetAsyncKeyState(character) == -32767){ 
    //do something 
    } 
+0

Was ist die Frage? –

+0

Haben Sie [lesen] (https://msdn.microsoft.com/en-us/library/windows/desktop/ms646293%28v=vs.85%29.aspx)? –

+0

Sorry, gerade bearbeitet ... Ich bin ein Neuling Bitte überprüfen Sie die bearbeitete Version – ph03n1x

Antwort

1

Der short (16-Bit) Wert -32767 ist 0x8001 in hexadezimal. Dies macht es leicht zu erkennen, dass die Bits 0 und 15 gesetzt sind. Die man page sagt "Wenn das höchstwertige Bit gesetzt ist, ist die Taste gedrückt, und wenn das niedrigstwertige Bit gesetzt ist, wurde die Taste nach dem vorherigen Aufruf von GetAsyncKeyState gedrückt." Da diese beiden Bits gesetzt sind, waren diese beiden Bedingungen beide wahr.

+0

Ja das ist die Sache, die ich wissen wollte .... und wieder Entschuldigung für die Bearbeitungszeit. – ph03n1x

+0

Heute ist mein erster Tag in SO, kann nicht abstimmen oder akzeptieren – ph03n1x

+0

oh ja hab es bro und danke ... Sie sind verdammt cool und helfende Hände für Anfänger – ph03n1x

Verwandte Themen