2012-11-19 63 views
4

我需要隱藏窗口的HANDLEHWNDEndTask((HWND)hProc,TRUE,TRUE);終止它。我用了下面列出的所有方法,但都沒有工作。當我用spy ++手動設置一個隱藏窗口的句柄時,這個工作正常。如何獲得一個或多個隱藏窗口的HWND?

注意:此窗口不與ShowWindow()一起顯示,然後使用FindWindow()。間諜++如何獲取並顯示這些句柄?

enter image description here

我使用:

  1. FindProcessId

    然後

    hProc = OpenProcess(SYNCHRONIZE|PROCESS_TERMINATE, FALSE, id); 
    

    hProc = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pe.th32ProcessID); 
    
  2. 創建進程不工作:訪問被拒絕。

  3. FindWindow()不適用於此隱藏窗口。

如何獲取隱藏窗口的句柄,以便終止該過程?

+4

嘗試使用['EnumWindows()'](http://msdn.microsoft.com/en-gb/library/windows/desktop/ms633497(v = vs.85).aspx)來查找窗口。 – hmjd

+1

這是某種企業程序,IDM意味着Identity Driven Manager。你可以完全期待它阻止混亂的嘗試。如果阻礙,你需要與局域網管理員一起工作,儘管可能會阻止你做你想做的事。 –

+0

'EndTask((HWND)hProc,TRUE,TRUE);'這沒有意義。您無法將進程句柄轉換爲窗口句柄。此外,'EndTask'已棄用。此外,'EndTask'不一定會停止程序,而只是試圖關閉(和/或銷燬)指定的窗口。當其中一個窗口被破壞時,許多程序不會停止。你真的想做什麼? –

回答

2

FindWindow將搜索任何類型的Windows,無論它是否隱藏或不重要。

也許你的問題FindWindow是,窗口你正在尋找,是另一個孩子,因此你無法找到它。

所以你應該使用FindWindowEx並搜索到兒童的窗戶。