获取在.NET中使用CreateObject启动的进程的进程ID

时间:2010-03-12 09:45:54

标签: vb.net com pid

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

Dim AVObject = CreateObject("avwin.application")

完成所有操作后,所有内容都会被关闭并使用正确的释放功能停止,但由于某种原因,该过程仍然存在。

是否有某些方法可以获取已启动进程的进程ID,以便在终止之前显式地终止它?

由于

2 个答案:

答案 0 :(得分:2)

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

  • 将CreateObject包装在CustomCreateObject(...)
  • 在下面的方法实现中以相同的顺序
  • 调用System.Diagnostics.Process.GetProcessesByName(nameOfYourProcess),存储所有进程ID
  • 调用CreateObject(...)
  • 再次调用GetProcessesByName,现在获取新的进程ID列表
  • 后面的列表中的进程ID,而不是第一个中的进程ID,将是您之后的进程ID。返回,以便调用者知道要监视的进程ID。

答案 1 :(得分:1)

  

在完成所有操作后,所有内容都会被关闭并使用正确的释放功能停止,但是,由于某种原因,该过程仍然存在。

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

最佳

阿德