keybd_event(VK_LWIN,0,0,0)无效

1

win10,vs2010

使用keybd_event()时遇到问题

keybd_event(VK_LWIN,0,0,0);//无效
keybd_event(VK_LSHIFT,0,0,0);//有效

VK_LWIN,0x5B和91皆无效

几个月前试过还能用的,是win10更新的原因吗?

而且这个函数没有返回值,该怎么查看执行情况呢?

ava
④‹

2019-11-10

0

是你代码的原因。

你只模拟了按键按下,却没有模拟按键抬起的事件。

模拟 shift 键有效,是因为许多功能响应的是 shift 按下的动作。模拟 win 键无效,是因为弹出开始菜单响应的是 win 键抬起的动作。

完整的模拟 win 键的代码如下(已在 win10 + vs2019 下测试通过):

#include <windows.h>
#include <conio.h>

int main()
{
	keybd_event(VK_LWIN, 0, 0, 0);
	Sleep(30);
	keybd_event(VK_LWIN, 0, KEYEVENTF_KEYUP, 0);

	_getch();
	return 0;
}
ava
慢羊羊

2019-11-10

技术讨论社区