即使在ProcessWindowStyle.Hidden之后,控制台窗口仍然弹出;

问题描述:

我必须从Windows应用程序运行控制台应用程序。控制台应用程序,我想运行在我的应用程序嵌入的资源,和我打电话这样说:即使在ProcessWindowStyle.Hidden之后,控制台窗口仍然弹出;

// Run the updater and grab its output 
Process Updater = new Process(); 
Updater.StartInfo.FileName = "C:\\tmp\\tmp.exe"; 
Updater.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; 
Updater.StartInfo.UseShellExecute = false; 
Updater.StartInfo.RedirectStandardOutput = true; 
Updater.Start(); 
string UpdaterOutput = Updater.StandardOutput.ReadToEnd(); 
Updater.WaitForExit(); 

它提取的罚款,并运行良好,而且还抓住它的输出完全没问题...但是我仍然可以在运行时看到控制台窗口快速打开。我知道弹出的控制台来自此应用程序,因为控制台标题为C:\tmp\tmp.exe。是否有任何完全失败的证明方式来隐藏控制台应用程序?我认为使用ProcessWindowStyle.Hidden会做到这一点,但显然不是。

谢谢。

+0

这个问题的答案,请关闭您的线程。 – 2010-08-16 23:38:23

+0

@Hans Passant - 如果我已经达到了当天的代表权限,我的答案可以被接受吗? – fletcher 2010-08-16 23:46:31

+1

@fletch:当然,答案标记点上没有上限。 – 2010-08-16 23:50:57

+0

嗯,我曾经使用过,但是没有想到当我使用'ProcessWindowStyle.Hidden'时它有什么不同。我需要将它设置为真,而不是假。 非常感谢! :) – Kratz 2010-08-16 22:33:31

+1

是的,这里迟到了。我搞砸了,双重否定... – fletcher 2010-08-16 22:34:06

+0

是这样或者而不是? – barlop 2016-04-25 04:11:06