即使使用了ProcessWindowStyle.Hidden,控制台窗口仍然会弹出。

7

我需要从我的Windows应用程序中运行一个控制台应用程序。我想要运行的控制台应用程序是我的应用程序中的一项嵌入资源,并且我是这样调用它的:

// 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会实现,但显然并不行。

谢谢。


这个问题已经得到解答,请关闭你的讨论主题。 - Hans Passant
@Hans Passant - 如果我今天已经达到了声望上限,那么我的回答能被接受吗? - fletcher
1
@fletch:当然,答案评分点数没有上限。 - Hans Passant
@Hans:我讨厌人们这样做。 - Mike Caron
4
我讨厌人们草率下结论。在接受答案之前,我不得不再等待大约5分钟左右。当时我很累,就去睡觉了。保证已经接受了答案。 - Kratz
1个回答

16

啊,我以前用过那个,但当我使用 ProcessWindowStyle.Hidden 时没有想到它会有什么区别。而且我需要将其设置为 true,而不是 false。非常感谢! :) - Kratz
是作为额外的还是代替的? - barlop

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接