在Visual Basic中,我创建一个Application Object并启动它:
gApp = New CANoe.Application
gMeasurement = gApp.Measurement
gApp.Open(arrArgs(0), False, False)
gMeasurement.Start()
一旦应用程序完成数据处理,可能会发生两种可能的情况:(i)数据文件已损坏,并且(在正常情况下)引发了转发窗口,并且(ii)数据文件正常。在(ii)案例中,我可以使用gApp.Quit()
完全使用该应用程序。但是,如果(i)gApp.Quit()
不起作用,因为程序需要用户输入(尽管通常我根本看不到窗口)。
问题1 :我怎么能完全对应gApp的过程?目前我正在以这种方式退出:
For Each p As Process In Process.GetProcesses
If p.ProcessName = "CANoe32" Then
p.Kill()
End If
Next
一般来说,这是一个糟糕的解决方案,因为CANoe32的更多实例可能会运行(尽管在这种特殊情况下,只能在系统上运行此二进制文件的一个进程)。
问题2 如果有子窗口,退出gApp会有什么更优雅的解决方案?
任何评论都非常有帮助
答案 0 :(得分:0)
问题的可能解决方案是使用类似于此票证的内容:
how-do-i-get-the-process-id-from-a-created-excel-application-object