2010-04-05 209 views
1

當使用「Process.CloseMainWindow()」方法試圖通過另一個應用程序關閉Windows資源管理器(而非Internet Explorer)窗口時,我遇到問題;因爲它沒有關閉資源管理器窗口,所以它試圖關閉Windows(操作系統),順便說一下,Windows XP。CloseMainWindow()關閉Windows資源管理器窗口的問題

的代碼如下:

[DllImport("user32.dll")] 
    static extern int GetForegroundWindow(); 

    [DllImport("user32.dll")] 
    private static extern UInt32 GetWindowThreadProcessId(Int32 hWnd, out Int32 lpdwProcessId); 


    public String[] exeCommand() 
    { 

     try 
     { 
      //Get App 
      Int32 hwnd = 0; 
      hwnd = GetForegroundWindow(); 
      Process actualProcess = Process.GetProcessById(GetWindowProcessID(hwnd)); 

      //Close App 
      if (!actualProcess.CloseMainWindow()) 
       actualProcess.Kill(); 

     } 
     catch { throw; } 

     return null; 

    } 

假設 「actualProcess」 是 「的explorer.exe」

任何幫助將理解!! 致敬!

+0

Explorer.exe可以顯示很多窗口。你需要在你的問題中縮小哪一個你可能想要關閉的問題。 – 2010-04-05 15:42:52

回答

1

我相信這是因爲探索的主窗口被認爲是殼。但是,你可以殺死這個進程,但是Windows會立即啓動它。

+0

殺死方法工作,它關閉瀏覽器窗口,它並沒有啓動它,但我想知道是否有一個不太關鍵的方式來關閉瀏覽器窗口。 謝謝! – MorgoZ 2010-04-06 07:22:41

+0

你試圖完成什麼 – rerun 2010-04-12 13:13:45

相關問題