【发布时间】:2011-03-30 16:50:20
【问题描述】:
我必须从我的 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 - 如果我达到了当天的代表上限,我的回答可以被接受吗?
-
@fletch:当然,答案分数没有上限。
-
@Hans:我讨厌人们这样做。
-
我讨厌人们急于得出结论。在我接受答案之前,我不得不再等 5 分钟左右。我累了,我去睡觉了。请放心,答案现在已被接受。
标签: c# process console-application invisible