2009-06-01 65 views
0

即时通讯使用:模拟按住一个键可

keybd_event(0x41, 0, 0, 0); 

的0x41是 'A'。但是这只是在屏幕上打印一个'a'。我需要它按住的关键。当我打电话

keybd_event(0x41, 0, KEYEVENTF_KEYUP, 0); 

它必须释放密钥。

这可能吗?

+0

你试图模拟用户按住'A'键来获得aaaa ...吗? – 2009-06-01 16:58:38

+0

您可以使用计时器或循环来连续调用keybd_event。或者,如果您知道要使用什么硬件,则可以将按键输入kb缓冲区。 – 2009-06-01 16:59:58

回答

0

你想完成什么?用于保持按下的按键应该已经在第一行显示。

Here's keybd_event()的文档。也许它会帮助回答你的问题。 (也许你需要GetKeyboardState()方法?)

如果你只是试图重复敲一个键,那么在第一次调用中循环会比试图让系统自动重复更容易。您可以在系统信息API函数中找到适当的延迟。

1

您可以用SendInput替换keybd_event呼叫。您可以插入尽可能多的事件系统允许的按键事件。该函数返回成功插入的事件数量。