2011-03-11 68 views
0

爲什麼我在使用GetAsyncKeyState的同時在單擊時獲得超過1(幾百)個按鍵。它打印了一百個同樣的按鍵,而我只按了一次。 謝謝,GetAsyncKeyState和一些問題?

+0

你同時呼籲GetAsyncKeyState循環?請記住,計算機可以很好地檢查關鍵狀態幾百次,以釋放密鑰。 – slezica 2011-03-11 18:18:50

+0

最新我可以在這裏做什麼?我的意思是我試圖睡覺(100),但如果一些電腦更慢?那麼會出現丟棄的字符。 – Kourosh 2011-03-11 18:23:32

回答

1

GetAsyncKeyState告訴你狀態鍵盤,關鍵是下/上,而不是它是否已經從去年的呼叫被按下。如果你在一個循環中調用它,只要你保持按下鍵,你就會得到「按鍵關閉」 - 並且該循環執行的速度比你移動手指的速度快得多。

如果您想要鍵盤事件句柄WM_KEYDOWNWM_KEYUP

如果你想有一個全局熱鍵,使用RegisterHotKey

+0

嗯...明白了,你有什麼建議嗎? – Kourosh 2011-03-11 18:21:58

+0

您試圖解決什麼問題? – Erik 2011-03-11 18:24:59

+0

我試圖爲我的應用程序添加一個快捷方式,以便在去托盤時我可以將它調回來,而不是集中注意力。 – Kourosh 2011-03-11 18:28:42