我正在尝试使用System.Diagnostics.Process类在远程机器上创建进程。我能够创建一个流程。但问题是,创建服务需要很长时间,而且会显示控制台窗口。另一件烦人的事是控制台窗口显示在我的windows窗体的顶部,我不能在这个窗体上做任何其他的操作。我已经设置了像CreateNoWindow = true
这样的所有属性,
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();
发布于 2013-07-10 05:31:08
我在回答这个问题时运气不好,这个过程(Wix light.exe)本质上就是出去吃午饭,没有及时回家吃晚餐。然而,以下方法对我来说效果很好:
Process p = new Process();
p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
// etc, then start process
发布于 2018-06-21 19:00:02
这不会显示窗口:
Process cmd = new Process();
cmd.StartInfo.FileName = "cmd.exe";
cmd.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
cmd.StartInfo.CreateNoWindow = true;
...
cmd.Start();
https://stackoverflow.com/questions/5377423
复制相似问题