2011-04-21 81 views
1

我試圖關閉個人窗口從一個進程的代碼,我沒有訪問。該程序產生了一個按鈕按下時看起來像Internet Explorer窗口,但他們不創建iexplorer.exe進程(他們都顯然住在應用程序進程內)。我已經設法通過一些API調用來獲取每個「假」IE窗口的進程句柄和窗口句柄,但我無法弄清楚如何關閉進程中的給定窗口。關閉一個窗口(通過它的窗口句柄),而不關閉擁有它的進程

我已經試過

SendMessage(WindowHandles[i], 0x0010, 0, 0); 

這是WM_CLOSE消息,但它在關閉過程中的所有窗口,結束進程。有沒有辦法以編程方式做類似於當我按下窗口右上角的X時發生的事情?該窗口沒有執行任何計算或影響任何其他內存空間,所以我可以結束它,但是我想要,但是我嘗試了所有我知道該怎麼做的東西(DestroyWindow;它返回錯誤5權限被拒絕,WM_CLOSE;關閉該進程,WM_QUIT;它給出錯誤2文件沒有找到,什麼都不做)。

任何想法?

+0

WM_CLOSE找到更多的信息是這樣做的正確方法。 – 2011-04-21 18:15:18

+0

當您使用X按鈕關閉窗口時,該過程是否結束? – 2011-04-21 18:18:11

回答

1

您可以發送SW_HIDE應該在技術上的工作,但它不會關閉它們,你可以在 http://msdn.microsoft.com/en-us/library/ms633548(v=vs.85).aspx

+0

好的建議,但這是否意味着窗口只是在某個過程中佔用內存?不是最理想的解決方案,但我會做到這一點,如果我必須... – 2011-04-21 18:11:54

+0

另一種方式是模擬鼠標點擊:)在X的頂部。因爲你已經有句柄WM_LBUTTONDOWN然後WM_LBUTTONUP,可能不是一個不錯的解決方案。 – Ekim 2011-04-21 18:19:19

+0

哈哈,這絕對是我想過的事情,但我想我會在開始做這樣的事情之前問問周圍的事情! – 2011-04-21 19:36:40