2014-11-20 81 views
1

如何终止使用VB脚本一个VBS文件..我想这段代码,它不工作终止VBS文件,如何使用VB脚本

Call StopProcessVBS(strComputer,strProcess) 

Function StopProcessVBS (strComputerArg,strProcessArg) 
    Set WshShell = CreateObject("WScript.Shell") 
    Dim objWMIService, colProcessList 
    Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputerArg & "\root\cimv2") 
    Set colItems = objWMIService.ExecQuery ("Select * from Win32_Process Where Name = 'cscript.exe' OR Name = 'wscript.exe'") 
    For Each objItem in colItems 
     If objItem.CommandLine = strProcessArg Then 
      **objItem.CommandLine.Terminate()** 
     End If 
    Next 


    Set WshShell = Nothing 
    Set objWMIService = Nothing 
    Set colItems = Nothing 
End Function 
+0

您是否尝试过搜索现有答案?相关问题:http://stackoverflow.com/questions/893237/how-to-terminate-process-using-vbscript – Xenyal 2014-11-20 16:27:40

+0

在你的脑海里,“VBS”和“Vb脚本”有什么区别? – 2014-11-20 16:31:00

+1

定义(详细!)“不工作”?你能终止一个命令行(而不是一个进程)吗?你作为strProcessArgs传递什么? – 2014-11-20 16:38:23

回答

1

终于摸索,尝试下面的代码

strComputer = "." 
Call StopProcessVBS(strComputer,strProcess) 

Function StopProcessVBS (strComputerArg,strProcessArg) 
    Set WshShell = CreateObject("WScript.Shell") 
    Dim objWMIService, colProcessList 
    Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputerArg & "\root\cimv2") 
    Set colItems = objWMIService.ExecQuery ("Select * from Win32_Process Where Name = 'cscript.exe' OR Name = 'wscript.exe'") 
    For Each objItem in colItems 
     If Instr (1,Replace(objItem.CommandLine,"""",""),strProcessArg) Then 
      objItem.Terminate() 
     End If 
    Next 

    Set WshShell = Nothing 
    Set objWMIService = Nothing 
    Set colItems = Nothing 
End Function