键盘在使用keybd_event后混乱

时间:2012-06-24 13:34:54

标签: c# keyboard

您好我有一个c#应用程序,它使用keybd_event虚拟模拟按键。当我运行应用程序时,所有按键操作都很好。然而,在我关闭我的应用程序后,键盘上的一些键变得混乱,当我按某个键时,默认命令不会发生。

感谢。

1 个答案:

答案 0 :(得分:2)

我假设您忘记发布以编程方式“按下”的修改键。对于您按的每个键,请务必使用keybd_event选项致电KEYEVENTF_KEYUP

以下是按Ctrl + Q

的示例
keybd_event(VK_CONTROL, 0, 0, 0);
keybd_event(VK_Q, 0, 0, 0);
keybd_event(VK_Q, 0, KEYEVENTF_KEYUP, 0);
keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0);

如果您忘记了最后一行,那么所有后续按键 - 即使是由用户手动执行 - 也会被解释为仍然按下Ctrl键。