首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >对Process.Start C#隐藏控制台窗口

对Process.Start C#隐藏控制台窗口
EN

Stack Overflow用户
提问于 2011-03-21 20:14:13
回答 2查看 147.5K关注 0票数 118

我正在尝试使用System.Diagnostics.Process类在远程机器上创建进程。我能够创建一个流程。但问题是,创建服务需要很长时间,而且会显示控制台窗口。另一件烦人的事是控制台窗口显示在我的windows窗体的顶部,我不能在这个窗体上做任何其他的操作。我已经设置了像CreateNoWindow = true这样的所有属性,

代码语言:javascript
复制
proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden

但它仍然会显示控制台窗口。即使我已经将输出和错误重定向到单独的流,但没有运气。

是否有其他方法可以隐藏控制台窗口?请帮帮我。

下面是我用来执行sc命令的代码部分。

代码语言:javascript
复制
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();
EN

回答 2

Stack Overflow用户

发布于 2013-07-10 05:31:08

我在回答这个问题时运气不好,这个过程(Wix light.exe)本质上就是出去吃午饭,没有及时回家吃晚餐。然而,以下方法对我来说效果很好:

代码语言:javascript
复制
Process p = new Process();
p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
// etc, then start process
票数 59
EN

Stack Overflow用户

发布于 2018-06-21 19:00:02

这不会显示窗口:

代码语言:javascript
复制
Process cmd = new Process();
cmd.StartInfo.FileName = "cmd.exe";
cmd.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
cmd.StartInfo.CreateNoWindow = true;

...
cmd.Start();
票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5377423

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档