在C#中启动进程无需分心控制台窗口
我想知道如何启动一个过程。 但现在我的问题是控制台窗口(在这种情况下,7z)popup最前面阻止我的视野,并消除我的重点打扰我的句子或每隔几秒钟。 它非常烦人,我怎么防止发生。 我认为CreateNoWindow解决了,但它没有。
注:有时控制台需要用户input(replace文件或不)。 所以完全隐藏它可能是一个问题。
这是我现在的代码。
void doSomething(...) { myProcess.StartInfo.FileName = ...; myProcess.StartInfo.Arguments = ...; myProcess.StartInfo.CreateNoWindow = true; myProcess.Start(); myProcess.WaitForExit(); }
如果我记得正确的话,这为我工作
Process process = new Process(); // Stop the process from opening a new window process.StartInfo.RedirectStandardOutput = true; process.StartInfo.UseShellExecute = false; process.StartInfo.CreateNoWindow = true; // Setup executable and parameters process.StartInfo.FileName = @"c:\test.exe" process.StartInfo.Arguments = "--test"; // Go process.Start();
我从C#控制台应用程序中使用它来启动另一个进程,并停止应用程序在单独的窗口中启动它,而是将所有内容保存在同一个窗口中。
@galets在你的build议中,窗口仍然被创build,只有它开始最小化。 这对于实际上做的事情会更好:
myProcess.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
尝试这个:
myProcess.StartInfo.WindowStyle = ProcessWindowStyle.Minimized;
我必须仔细检查,但我相信你也需要设置UseShellExecute = false
。 这也可以让你捕捉标准的输出/错误stream。