我正在嘗試使用System.Diagnostics.Process類在遠程計算機上創建進程。 我能夠創建一個進程。但問題是,創建服務需要很長時間並顯示控制檯窗口。 另一個煩人的事情是控制檯窗口顯示在我的窗體上,我不能在窗體上做任何其他操作。 我設置了所有的屬性,如CreateNoWindow = true
,從Process.Start隱藏控制檯窗口C#
proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
但仍顯示在控制檯窗口。即使我已將輸出和錯誤重定向到單獨的流,但沒有運氣。
是否有任何其他方式來隱藏控制檯窗口?請幫助我。
這是我用來執行sc命令的代碼的一部分。
Process proc = new Process();
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.CreateNoWindow = true;
proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
proc.StartInfo.FileName = "sc";
proc.StartInfo.Arguments = string.Format(@"\\SYS25 create MySvc binPath= C:\mysvc.exe");
proc.StartInfo.RedirectStandardError = false;
proc.StartInfo.RedirectStandardOutput = false;
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.CreateNoWindow = true;
proc.Start();
proc.WaitForExit();
您是否嘗試過設置'proc.StartInfo.RedirectedStandardOutput = true'?我已經得到了這個與Windows應用程序一起工作。 – Andrew 2012-12-06 21:09:41
任何最終解決方案與完整的源代碼示例工作? – Kiquenet 2013-07-10 08:51:12
在Windows *控制檯*應用程序中,只需設置UseShellExecute - 無w/o重定向或其他任何內容即可。請參閱[這裏](https://stackoverflow.com/a/47781912/63209)。 – Paul 2017-12-12 21:49:56