VB6如何检查进程ID是否已终止

时间:2016-09-21 02:00:51

标签: process vb6 terminate

我需要知道进程ID是否存在。代码到目前为止:

std

如果我取出“If”语句并打开记事本并显示带有进程ID的MsgBox,那么当我单击“确定”到MsgBox时它将成功终止记事本

但是使用“If”语句,它会显示“不存在”MsgBox是否打开记事本。如果它是打开的,它会成功杀死它,然后显示“不存在”的MsgBox,而不是“终止”的MsgBox。

非常感谢任何想法!

1 个答案:

答案 0 :(得分:2)

试试这个

Option Explicit

Dim WshShell As Object
Dim EngineRun As Object
Dim objWMIService As Object
Dim colProcessList As Object

Sub Main

   Set WshShell = CreateObject("WScript.Shell")
   Set EngineRun = WshShell.Exec("notepad.exe")

   MsgBox EngineRun.ProcessID

   Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
   Set colProcessList = objWMIService.ExecQuery("Select * from Win32_Process Where ProcessID = " & EngineRun.ProcessID)

   If colProcessList.Count = 1 Then
       WshShell.run "TASKKILL /F /IM " & EngineRun.ProcessID, , True
       MsgBox EngineRun.ProcessID & (" terminated")
   Else
       MsgBox EngineRun.ProcessID & (" does not exist")
   End If

End Sub