【问题标题】:Console window still popping up even after ProcessWindowStyle.Hidden;即使在 ProcessWindowStyle.Hidden 之后,控制台窗口仍会弹出;
【发布时间】: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


【解决方案1】:

ProcessStartInfo.CreateNoWindow 属性设置为true

【讨论】:

  • 啊,我以前用过,但我觉得用ProcessWindowStyle.Hidden 时没有什么不同。我需要将其设置为 true,而不是 false。非常感谢! :)
  • 是这样还是代替?
猜你喜欢
  • 1970-01-01
  • 2020-11-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多