2017-07-17 6 views
-4

Schreiben eines einfachen C++ - Programms und Verwenden von GetAsyncKeyState zum Auslösen verschiedener Funktionen. Wenn Sie beispielsweise Tasten (VK_MENU) verwenden, funktioniert alles einwandfrei. Aber wenn ich VK_LBUTTON benutze, werden nur 1/100 Drücken erkannt.GetAsyncKeyState erkennt keine Mauseingabe

Mein Detektorzeile ist einfach

if(GetAsyncKeyState(VK_LBUTTON)) { do stuff; } 

jemand empfehlen kann, warum dies geschieht?

+1

Übliche Erinnerung über 'GetAsyncKeyState': Es ist keine richtige Methode, um Benutzereingaben zu erhalten, Sie riskieren den Verlust von Ereignissen und werden nicht richtig mit der Eingangswarteschlange des Threads synchronisiert. Verwenden Sie die normalen Maus-/Tastatureingabemeldungen. –

+0

Warum? Ich brauche eine Funktion, die im Hintergrund ausgeführt werden kann, da mein Fenster nicht fokussiert ist. Bei richtiger Verwendung hat GetAsyncKeyState für mich immer funktioniert – Theocracy

+0

Wenn Sie einen (globalen) Hotkey benötigen, verwenden Sie das richtige Tool für den Job: [RegisterHotKey] (https://msdn.microsoft.com/en-us/library/windows/desktop /ms646309.aspx). – IInspectable

Antwort

-3

Ich löste das Problem. Es war aufgrund eines anderen Fehlers weiter unten in meinem Code. Der tatsächliche GetAsyncKeyState wurde ordnungsgemäß ausgeführt.

+1

Dies ist nicht wirklich eine nützliche Antwort auf die Frage. Am besten entfernen Sie sowohl die Frage als auch die Antwort. –