2011-03-11 90 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