2011-07-28 45 views
17

我开始通过的ProcessStartInfo和的Process.Start控制台应用程序()。我想隐藏黑色的窗户。这里是我的代码:如何启动进程隐藏?

string output = ""; 
//Setup the Process with the ProcessStartInfo class 
ProcessStartInfo startInfo = new ProcessStartInfo(); 
startInfo.FileName = "C:\\WINNT\\system32\\cmd.exe"; 
startInfo.UseShellExecute = false; 
startInfo.RedirectStandardOutput = true; 

//Start the process 
Process proc = Process.Start(startInfo); 
+0

完整的源代码示例工作任何有关它的最终解决方案? CreateNoWindow = true? [从的Process.Start C#隐藏控制台窗口]的 – Kiquenet

+0

可能重复(http://stackoverflow.com/questions/5377423/hide-console-window-from-process-start-c-sharp) – sirdank

回答

25

试试这个:

startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; 
+4

这将这样的伎俩。只需添加它必须在调用'Process.Start(startInfo)'之前设置。 – Cipi

+1

但它不工作在这里,一些其他的技巧? –

+1

不工作,但是...你得到一个错误,它只是显示黑色的窗口?我需要更多信息。 :d – Jonathan

5

尝试

startInfo.WindowStyle = ProcessWindowStyle.Hidden; 
+0

通过@jonathan –

25

最终的答案是

ProcessStartInfo psi = new ProcessStartInfo(); 
psi.FileName = .... 
psi.RedirectStandardInput = true; 
psi.RedirectStandardOutput = false; 
psi.Arguments =... 
psi.UseShellExecute = false; 

psi.CreateNoWindow = true; // <- key line

+3

CreateNoWindow已经给做的把戏我在哪里WindowStyle没有效果。无论如何我都会重定向标准输出,现在可以避开空白窗口。 – Timo

1
Process p = new Process(); 
.... 
p.StartInfo.CreateNoWindow = true; 
p.Start(); 
+0

此答案不会为现有答案添加新知识。 – ShloEmi