c++ - 如何在 MS Windows 中使用 C++ 将快捷方式发送到另一个应用程序?

标签 c++ windows keyboard-shortcuts handle sendinput

我的问题是如何将快捷方式从 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/

相关文章:

c++ - 视频/音频编码/解码/播放

c++ - 为什么 GCC 不编译这段代码?

windows - 如何从命令行列出已安装的 MSI?

php - 如何在 php 中运行除非被杀死或停止才会停止的 shell_exec()?

c++ - 修改结构后应用程序崩溃

windows - 使用键盘快捷键启动 powershell 脚本

c++ - 谷歌风格指南 "<chrono> is an unapproved C++11 header"

c++ - 将指向字符串的共享指针从 cin 插入 vector

java - 自动生成默认和字段构造函数的 eclipse 快捷方式是什么?

WPF KeyGestures - 绑定(bind)非字母数字键