【发布时间】:2012-06-26 00:49:29
【问题描述】:
您好,我有一个使用 keybd_event 虚拟模拟按键的 c# 应用程序。当我运行应用程序时,所有按键都可以正常工作。但是,在我关闭应用程序后,键盘上的某些键会变得混乱,因为当我按下某个键时,默认命令不会发生。
谢谢。
【问题讨论】:
-
在您的问题被关闭之前,是否需要显示一些代码或其他内容?
您好,我有一个使用 keybd_event 虚拟模拟按键的 c# 应用程序。当我运行应用程序时,所有按键都可以正常工作。但是,在我关闭应用程序后,键盘上的某些键会变得混乱,因为当我按下某个键时,默认命令不会发生。
谢谢。
【问题讨论】:
我假设您忘记释放您以编程方式“按下”的修饰键。确保在您按下的每个键时使用 KEYEVENTF_KEYUP 选项调用 keybd_event。
这里是按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 键。
【讨论】: