c++ - 以编程方式模拟 Alt + Enter 按键不起作用

标签 c++ windows keyboard console

这是我的代码:

keybd_event(VK_MENU, 0, 0, 0);
keybd_event(VK_RETURN, 0, 0, 0);
Sleep(200);
keybd_event(VK_MENU, 0, KEYEVENTF_KEYUP, 0);
keybd_event(VK_RETURN, 0, KEYEVENTF_KEYUP, 0);

第一行会按Alt
第二行将按 Enter ↵(或 Return ↵),
第四行将释放Alt,
第五行将释放 Enter ↵(或 Return ↵)。

最佳答案

您没有设置 KEYEVENTF_EXTENDEDKEY标志以保持按键按下。将您的代码更改为:

keybd_event(VK_MENU, 0, KEYEVENTF_EXTENDEDKEY, 0);
keybd_event(VK_RETURN, 0, KEYEVENTF_EXTENDEDKEY, 0);
Sleep(200);
keybd_event(VK_MENU, 0, KEYEVENTF_KEYUP, 0);
keybd_event(VK_RETURN, 0, KEYEVENTF_KEYUP, 0);

此外,如果您只是发送 Alt + Enter

,您真的不需要中间的 sleep

您可以在 MSDN page 查看所有键码。 .

  • Alt = VK_MENU
  • 向左 Alt = VK_LMENU
  • Alt Gr = VK_RMENU

关于c++ - 以编程方式模拟 Alt + Enter 按键不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30917945/

相关文章:

c++ - 添加到 vector 而不复制结构数据

c++ - 为内联函数定义多次,怎么可能?

java - 如何在Windows批处理文件中获取Java程序的退出状态

ruby - 如何在 Windows 上使用 gollum?可能吗?

ios - 无法关闭 iPhone 5 和 iPhone 5s 的键盘

ios - 自定义键盘出现约 5 秒延迟

c++ - 关于 C++ 复制 (value1 = value2)

c++ - 使用 .get() 一次读取一个字节

c# - 网络流写入被阻止

javascript - 有没有浏览器键盘绑定(bind)的开源库JS?