首页 > 解决方案 > 如何使用 winapi c++ 发送 shift+down?

问题描述

使用以下代码

Sleep(3000);
keybd_event(VK_SHIFT, 0, 0, 0);
keybd_event(VK_DOWN, 0, 0, 0);
keybd_event(VK_DOWN, 0, KEYEVENTF_KEYUP, 0);
keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0);

如果我在睡眠期间将光标放在编辑器中,我希望窗口选择一行文本(因此它是前景窗口)

然而,这只是将光标向下移动一行。

使用以下作品,但肯定这不是它应该做的方式。

Sleep(3000);
keybd_event(VK_SHIFT, 0, KEYEVENTF_EXTENDEDKEY, 0);
keybd_event(VK_DOWN, 0, 0, 0);
keybd_event(VK_DOWN, 0, KEYEVENTF_KEYUP, 0);
keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP | KEYEVENTF_EXTENDEDKEY, 0);
keybd_event(VK_SHIFT, 0, 0, 0);
keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0);

它通过使用 KEYEVENTF_EXTENDEDKEY 标志出现,我可以按住它作为箭头键。但无论我如何尝试释放它都不起作用。但我可以正常按下并释放它以清除按住的 shift 键。

标签: c++winapikeyboard

解决方案


推荐阅读