4

我正在将 VB.NET 用于使用 CreateObject 启动某些进程的 Web 应用程序,如下所示:

Dim AVObject = CreateObject("avwin.application")

一切都完成后,使用适当的释放功能停止一切,但是,由于某种原因,该过程仍然存在。

有什么方法可以让我获得已启动进程的进程 ID,以便在终止之前明确杀死它?

谢谢

4

2 回答 2

2

我从来没有遇到过这个问题的具体解决方案,但从逻辑上讲,我将使用以下伪逻辑创建一个解决方法(我认为它应该在受控环境中工作)

  • 将 CreateObject 包装在 CustomCreateObject(...)
  • 在下面的方法中以相同的顺序执行
  • 调用 System.Diagnostics.Process.GetProcessesByName(nameOfYourProcess),存储所有进程 id
  • 调用 CreateObject (...)
  • 再次调用 GetProcessesByName 现在获取新的进程 ID 列表
  • 在后面的列表中而不是在第一个列表中的进程 ID 将是您所追求的。返回它,以便调用者知道要监视的进程 ID。
于 2010-03-15T11:37:15.650 回答
1

一切都完成后,使用适当的释放功能停止一切,但是,由于某种原因,该过程仍然存在。

你是否尝试过强制 GC 或调用ReleaseCOMObject () 方法?

最好的

阿德里亚诺

于 2010-03-17T21:10:04.347 回答