1

在 Visual Basic 中,我创建一个应用程序对象并启动它:

gApp = New CANoe.Application
gMeasurement = gApp.Measurement
gApp.Open(arrArgs(0), False, False)
gMeasurement.Start()

一旦应用程序完成数据处理,可能会发生两种可能的情况:(i) 数据文件已损坏,并且(在正常情况下)会出现警报窗口,以及 (ii) 数据文件正常。在(ii)情况下,我可以使用gApp.Quit(). 但是,如果 (i)gApp.Quit()不起作用,因为程序需要用户输入(尽管通常我根本看不到窗口)。

问题一:gApp对应的流程如何比较?目前我正在以这种方式退出:

        For Each p As Process In Process.GetProcesses
            If p.ProcessName = "CANoe32" Then
                p.Kill()
            End If
        Next

一般来说,这是一个糟糕的解决方案,因为可能会运行更多的 CANoe32 实例(尽管在这种特殊情况下,只有这个二进制文件的一个进程可能会在系统上运行)。

问题 2如果 gApp 有子窗口,那么退出 gApp 的更优雅的解决方案是什么?

任何评论都非常有帮助

4

1 回答 1

0

该问题的可能解决方案是使用类似于此票证的内容:

如何从创建的 excel 应用程序对象获取进程 ID

于 2013-09-02T17:02:33.940 回答