我的问题是如何将快捷方式从 C++ 发送到另一个应用程序。假设记事本已打开,我想向他们发送 CTRL+P 等快捷方式,或更复杂的 CTRL+SHIFT+HOME 或 ALT+F4 等快捷方式,我发现许多很好的教程解释了如何发送一个键像 'A' 或 'ALT',但我没有找到如何将它们一起发送。
最佳答案
您可以使用 SendInput()
或 keybd_event()
将键发送到当前聚焦的窗口。 SendInput()
可能是更好的选择,因为它不会将键盘事件与实际键盘的事件交织在一起。
// send CTRL+SHIFT+HOME
INPUT input[6];
memset(input, 0, sizeof(INPUT)*6);
input[0].type = INPUT_KEYBOARD;
input[0].ki.wVk = VK_CONTROL;
input[1].type = INPUT_KEYBOARD;
input[1].ki.wVk = VK_SHIFT;
input[2].type = INPUT_KEYBOARD;
input[2].ki.wVk = VK_HOME;
input[3].type = INPUT_KEYBOARD;
input[3].ki.wVk = VK_HOME;
input[3].ki.dwFlags = KEYEVENTF_KEYUP;
input[4].type = INPUT_KEYBOARD;
input[4].ki.wVk = VK_SHIFT;
input[4].ki.dwFlags = KEYEVENTF_KEYUP;
input[5].type = INPUT_KEYBOARD;
input[5].ki.wVk = VK_CONTROL;
input[5].ki.dwFlags = KEYEVENTF_KEYUP;
SendInput(6, input, sizeof(INPUT));
关于c++ - 如何在 MS Windows 中使用 C++ 将快捷方式发送到另一个应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3488346/