2013-11-04 142 views
0

在我正在處理的應用程序中,一切都很好。我的問題是,有沒有辦法在執行psexec時壓縮命令窗口?我希望它能夠靜靜地運行。下面是我使用的代碼..我在網上閱讀了很多例子,但似乎沒有任何工作。思考?謝謝。禁止psexec命令窗口?

  Process p = new Process(); 
      try 
      { 
       p.StartInfo.UseShellExecute = false; 
       p.StartInfo.CreateNoWindow = true; 
       p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; 
       p.StartInfo.RedirectStandardOutput = true; 
       p.StartInfo.RedirectStandardError = true; 
       p.StartInfo.RedirectStandardInput = true;          
       p = Process.Start(psExec, psArguments); 
       if (p != null) 
       { 
        string output = p.StandardOutput.ReadToEnd(); 
        string error = p.StandardError.ReadToEnd(); 
        p.WaitForExit(); 
       } 
      } 
      catch (Exception ex) 
      { 
       throw new Exception(ex.Message); 
      } 
      finally 
      { 
       if (p != null) 
       { 
        p.Dispose(); 
       } 
      } 
+0

正在運行什麼進程?如果這個過程有一個可以被抑制的主窗口,它通常是......但是如果它產生了隨機窗口,那麼你可以做的事情就不多了。 – Vlad

+0

我正在做幾件事情。網絡使用,出口regKeys等。每次,它開啓一個新窗口。 – Sparhawk

回答

4

居然再次分配變量p之前你設定StartInfo的,你的代碼必須是這樣的:

... 
ProcessStartInfo startinfo = new ProcessStartInfo(psExec, psArguments); 
startinfo.UseShellExecute = false; 
startinfo.CreateNoWindow = true; 
startinfo.WindowStyle = ProcessWindowStyle.Hidden; 
startinfo.RedirectStandardOutput = true; 
startinfo.RedirectStandardError = true; 
startinfo.RedirectStandardInput = true;          
p = Process.Start(startinfo); 
... 
+0

好的交易,我會做出改變並對其進行測試。謝謝。 – Sparhawk

+0

工作就像一個魅力。謝謝! – Sparhawk