在主应用程序退出之前,使用Process.Start启动应用程序不会显示在任务管理器中

时间:2019-01-02 14:58:13

标签: taskmanager process.start

我使用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是否正在运行。

1 个答案:

答案 0 :(得分:0)

好吧-找到了“问题”-很明显... 第二个进程归第一个进程所有。它不会作为独立进程显示在列表中,而是作为主进程的子进程显示。任务管理器在主应用程序上具有一个下拉箭头。

v  MainApplication
   - SourceMonitor

单击下拉列表将显示它已被轰击的SourceMonitor。如果我停止主应用程序,则SourceMonitor确实会成为一个独立的应用程序,然后显示在常规列表中。这实际上比我希望的要好。