Programmaticaly模拟Alt + Enter按键不起作用

时间:2015-06-18 14:18:29

标签: 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↵(或返回↵),
第四行将释放 Alt
第五行将释放 Enter↵(或Return↵)。

1 个答案:

答案 0 :(得分:2)

您没有设置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

,你真的不需要在中间睡觉

您可以在MSDN page看到所有密钥代码。

  • Alt = VK_MENU
  • Alt = VK_LMENU
  • Alt Gr = VK_RMENU