2017-07-17 250 views
-4

編寫簡單的C++程序並使用GetAsyncKeyState觸發不同的函數。例如,使用按鈕(VK_MENU)時,一切正常。但是當我使用VK_LBUTTON時,只能檢測到1/100按鍵。GetAsyncKeyState未檢測到鼠標輸入

我檢測線簡直是

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

任何人都可以說明爲什麼出現這種情況?

+1

關於'GetAsyncKeyState'的通常提醒:它不是一個獲取用戶輸入的正確方法,否則就有失去事件的風險,並且不能正確地與線程的輸入隊列同步。使用常規的鼠標/鍵盤輸入消息。 –

+0

爲什麼?我需要一個可以在後臺運行的函數,因爲我的窗口沒有關注。正確使用GetAsyncKeyState每次都爲我工作 – Theocracy

+0

如果您需要(全局)熱鍵,請使用適合該作業的工具:[RegisterHotKey](https://msdn.microsoft.com/en-us/library/windows/desktop /ms646309.aspx)。 – IInspectable

回答

-3

我解決了這個問題。這是由於我的代碼中的另一個錯誤。實際的GetAsyncKeyState正在正確執行。

+1

這並不能真正爲問題提供有用的答案。最好刪除問題和答案。 –