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

yhuiod9q  于 2022-12-05  发布在  Windows
关注(0)|答案(2)|浏览(215)

下面是我的代码:

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)。

pvcm50d1

pvcm50d11#

您没有设置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中看到所有键控代码。

  • 替代= VK_MENU
  • 左Alt = VK_LMENU
  • 右侧Alt Gr = VK_RMENU
qkf9rpyu

qkf9rpyu2#

扫描代码被注入到输入堆栈的较低层。而VK在堆栈中的位置相当高。一些应用程序,比如游戏,只在较低层监听键盘输入,将错过任何注入的VK。如果你试图模拟一个用ALT+221按下的,我怀疑Windows正在中间的某个地方做转换。- selbie Mar 12,2018年0时51分

相关问题