我的问题是如何将快捷方式从C++发送到另一个应用程序。比方说,例如记事本已打开,我希望发送给他们快捷方式,如CTRL + P,或更复杂的快捷方式,如CTRL + SHIFT + HOME或ALT + F4,我找到很多很好的教程,解释如何发送一个密钥如'A'或'ALT',但我没有找到如何将它发送到一起。如何发送快捷方式到MS Windows中的C++中的另一个应用程序?
1
A
回答
0
你可以发送一些WM_KEYDOWNs,后面跟着一些WM_KEYUPs,这样你可以尝试发送DOWN ctrl,shift,home,UP home,shift,ctrl - 这应该可以做到。
3
您可以使用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));
0
这种“组合键”通常称为Microsoft Windows中的Keyborad加速器。 The MSDN intro page
相关问题
- 1. 发送快捷键组合到另一个应用程序
- 2. Winkey应用程序(C#)中的Windows快捷键+ [快捷键]
- 3. c#发送控制快捷方式
- 4. 如何创建Windows应用程序:检测当前程序并发送快捷方式
- 5. 快捷方式/链接到TFS中的另一个文件夹
- 6. 如何在应用程序中实现快捷方式
- 7. Windows安装程序/ RunAs快捷方式
- 8. VB.NET 4.5发送快捷方式问题
- 9. .net .vdproj - 应用程序快捷方式
- 10. 应用程序快捷方式
- 11. 离线应用程序快捷方式
- 12. 创建应用程序快捷方式
- 13. C#VS卸载程序2010-应用程序快捷方式
- 14. 如何在android中以编程方式添加应用程序快捷方式
- 15. 来自一个应用程序的多个程序快捷方式
- 16. 如何重新创建webstart应用程序的快捷方式?
- 17. 如何创建Java桌面应用程序的快捷方式?
- 18. 如何关闭新的Android 7.1应用程序快捷方式
- 19. C#控制台应用程序 - 在“发送到”菜单中没有apears快捷方式
- 20. 编程按下另一个应用程序(C,Windows)中
- 21. Java应用程序中的可定制快捷方式
- 22. Android应用中的快捷方式
- 23. Android:我如何在自己的应用程序中启动某个应用程序的快捷方式?
- 24. C#程序集 - 快捷方式
- 25. 添加快捷方式到应用程序的菜单
- 26. 如何从Windows快捷方式(.lnk文件)以编程方式启动(C++)应用程序?
- 27. 将按键发送到另一个应用程序C#
- 28. 使用Process.Start通过快捷方式运行应用程序C#
- 29. Windows应用程序添加快捷键
- 30. 如何使安装程序创建快捷方式文档和文件夹的快捷方式(Windows 8)
你真的想给他们发一个'ALT-F4'“快捷方式”吗?或者你想发送一个'WM_CLOSE'消息吗? – MSalters 2010-08-16 11:53:55