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

Programmaticaly simulating Alt + Enter key press is not working

这是我的代码:

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
第二行按输入↵(或Return↵),
第四行会释放Alt,
第五行将释放输入↵(或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[=17=,你真的不需要中间的睡眠]

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

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