4,008
社区成员
发帖
与我相关
我的任务
分享
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colProcessList = objWMIService.ExecQuery _
("Select * from Win32_Process where name='notepad.exe'")
For Each objProcess in colProcessList
If LCase(objProcess.ExecutablePath) =LCase("d:\notepad.exe") Then
objProcess.Terminate()
End If
Next
把notepad.exe拷到D盘根目录并运行,再打开几个正常的记事本窗口,即在原始位置的记事本,然后运行上面这个例子,在D盘根目录的记事本窗口会被关闭,而正常位置的几个不受影响。
另外还可以这样改:
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colProcessList = objWMIService.ExecQuery _
("Select * from Win32_Process where name='notepad.exe'")
For Each objProcess in colProcessList
If Not(LCase(objProcess.ExecutablePath) =LCase("c:\windows\system32\notepad.exe")) Then
objProcess.Terminate()
End If
Next
这个是排它性的,如果进程不是在system32里面的,任何其他位置的进程都会被结束,但在原始位置的程序不会被结束。
这两个例子我都在XP上测试过完全正常,你可以根据你自己的需要稍作修改后就直接能用。