我的問題是如何將快捷方式從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