【发布时间】:2019-05-29 05:31:25
【问题描述】:
我使用 process.start 从我的主应用程序启动一个小应用程序。这是我的代码摘要:(为了清楚起见,我删除了所有错误检查...)
Dim proc as New Process
Dim si As New ProcessStartInfo
si.FileName = "SourceMonitor.exe"
si.Arguments = "guid=" & GUID & " name=" & Name & " timeout=0"
si.UseShellExecute = True
si.CreateNoWindow = True
Proc.StartInfo = si
Proc.EnableRaisingEvents = True
AddHandler Proc.Exited, AddressOf procExitEventHandler
Proc.Start()
发生的情况是新应用 SourceMonitor 不会出现在任务管理器中 - 但我希望它出现。 但是,一旦启动它的程序(使用 process.start)退出,它就会显示。这对我来说似乎很奇怪! 我尝试将 UseShellExecute 设置为 False,甚至尝试使用 si(我的 ProcessStartInfo)来使用不同的方法来
WindowStyle = ProcessWindowStyle.Hidden
si.UseShellExecute = False 'this is required when using processWindowStyle.hidden
在任何情况下,应用程序在主程序退出之前不会显示在任务管理器中。 有谁知道确保我的应用程序确实显示在任务管理器中的方法?当我需要诊断客户问题时,它会有所帮助 - 因为我需要查看 SourceMonitor 是否正在运行。
【问题讨论】:
-
我怀疑它并没有丢失,只是不在您希望看到的地方。也许它与您的主程序组合在一起。
-
是的——确实如此。不确定这是否是众多 Windows 10 更新之一中的新内容,但它对我来说效果很好。新进程确实显示为主应用程序的子进程。如果主应用程序结束,那么它会向下滑动到所有独立进程的列表。