2011-09-01 127 views
1

我有一個過程,我想隱藏窗口。通過進程隱藏多個窗口

如果過程只有一個窗口,它會很好地工作。

但如果有一個提示對話框或警告對話框或另一個子窗口,隱藏方法只隱藏主窗口,而不是對話......

你能幫我隱藏進程的所有窗口請 ?

非常感謝

這是我的代碼:

[DllImport("user32.dll")] 
private static extern Boolean ShowWindow(IntPtr hWnd, Int32 nCmdShow); 


    public void Show() 
    { 
     ShowWindow(_processHwnd, SwShow); 
    } 

    public void Hide() 
    { 
     Process[] processRunning = Process.GetProcesses(); 

     foreach (Process pr in processRunning) 
     { 

      if (pr.Id == _process.Id) 
      { 
       _processHwnd = pr.MainWindowHandle; 
      } 
     } 

     ShowWindow(_processHwnd, SwHide); 
    } 
+0

更新您的問題標籤。例如,如果這是winforms,請將該標籤添加到它。 – Rumplin

+0

@rumplin GUI框架是無關緊要的,可以很容易地是控制檯應用程序,問題是完美標記好,可能會添加一個Windows標記 –

+0

@David Heffernan這是一個例子,不過你的權利 – Rumplin

回答

1

你需要使用更多的Win32 API的通過P /調用,以獲得其他頂層窗口的窗口句柄。

在過程中有可能有與不同線程相關聯的窗口,但其概率很小。