我剛開始學習C++。目前,我正處於一個小事情,我還找不到解決方案。我希望有人能幫助我解決這個問題。如何將密鑰發送到C++中的最小化窗口
我的目標:我想發送幾個擊鍵到正在運行的應用程序。但是,當應用程序沒有焦點,即最小化或以往任何時候,擊鍵應仍然是 發送到應用程序。
我的問題:當我使用功能sendkey()
與VK_KEY
或什麼都(不記得笑),那麼它是工作,但只有在窗口最大化(聚焦),但是當我嘗試使用PostMessage(GameWindow, WM_KEYDOWN, 'G', 0);
沒有任何反應。
我在記事本上試過它,但也在我希望它工作但沒有任何應用程序。我想我需要掛鉤的過程,然後發送密鑰,不幸的是我沒有與C + +的問題(除非你完全親lol),但我沒有經驗什麼,所以從來沒有鉤和那種東西。
任何人都可以發送我正確的方向,或給我寫一個關於如何做這樣的事情,例如與Windows遊戲之一的小教程?
if(amount != 0)
{
// bring the window to the front
HWND GameWindow = FindWindow(0, L"Naamloos - Kladblok");
SetForegroundWindow(GameWindow);
// execute the loop
for(int i = 0; i < amount; i++){
// not the last loop so add a pause at the end
if(i < (amount-1))
{
PostMessage(GameWindow, WM_KEYDOWN, 'G', 0);
PostMessage(GameWindow, WM_KEYUP, 'G', 0);
Sleep(2000);
}
// last loop so dont add a pause at the end
else
{
PostMessage(GameWindow, WM_KEYDOWN, 'G', 0);
PostMessage(GameWindow, WM_KEYUP, 'G', 0);
}
}
}
您不檢查錯誤。你確定'FindWindow'成功了嗎?像這樣的'SetForegroundWindow'將不起作用。請閱讀文檔:http://msdn.microsoft.com/en-us/library/windows/desktop/ms633539(v=vs.85).aspx – 2012-01-09 00:14:02
感謝您的回覆!是的,它正在工作,我看到記事本窗口彈出,當我使用sendkeys而不是像PostMessage的其他東西,它確實工作正常;)因此,代碼是正確的,它只是PostMessage不會做一件事; ; – user1137770 2012-01-09 00:50:08
那麼,有時你可以像這樣僞造輸入,有時它不起作用。您可以嘗試在記事本中定位編輯窗口。但至於你知道的遊戲。如果你解釋了爲什麼你試圖對遊戲進行虛假輸入,也許我們可以做得更好。 – 2012-01-09 01:09:42