【发布时间】:2013-07-24 02:11:43
【问题描述】:
我正在编写一个诊断程序,它使用“进程”对象输出 msinfo32.exe 的副本。通常我通过将“CreateNoWindow”属性设置为true来隐藏这些诊断。
问题是,每当我使用 process.start() 方法调用它时,无论我做什么,都会显示 msinfo32.exe 窗口。通常这不会发生在其他命令行程序(如 ipconfig)中。但是 msinfo 似乎出现了。有什么建议吗?
【问题讨论】:
-
您是否也尝试设置
WindowStyle = ProcessWindowStyle.Hidden? -
ipconfig 没有 GUI,所以它是一个完全不同的鱼缸。如果您真的需要隐藏 msinfo32 进度条,您可以将其推送到备用桌面 - 请参阅 MSDN 库中的 CreateDesktop。
-
如果 UseShellExecute 属性为 true,则忽略 CreateNoWindow 属性值并创建一个新窗口。
-
@EricLaw 当你调用像 ipconfig 这样的命令行收费时,这些很重要。或者在 GUI 程序的情况下,您可以抑制额外的命令行窗口,该窗口可能会弹出调用 GUI 程序的命令。但是您不能隐藏 GUI 程序本身。也许您可以将其移出屏幕或其他一些东西。
-
有些应用支持shellexecute的窗口定位参数(所以你可以最小化运行)但是Msinfo32不支持。