当前位置 博文首页 > 杀死指定进程名称的小VBS

    杀死指定进程名称的小VBS

    作者:admin 时间:2021-02-01 12:12

    以下是一小段杀死指定进程名字的小vbs,希望对大家有帮助。

    Function KillProc(strProcName)
    On Error Resume Next
     Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
     Set arrProcesses = objWMIService.ExecQuery( "select * from win32_process where Name ='"&strProcName&"'" )
     For Each proccess In arrProcesses
     proccess.Terminate 0 
     Next
    End Function

    VBS命令-进程操作代码(检测进程, 结束进程)

    //检测进程
    进程名 = "qq.exe"
    返回值 = IsProcess(进程名)
    If 返回值 = True Then
    MessageBox "发现进程"
    ElseIf 返回值 = False Then
    MessageBox "没有发现进程"
    End If
    //检测进程 优化后的代码
    If IsProcess("qq.exe") = True Then 
    MessageBox "发现进程"
    Else 
    MessageBox "没有发现进程"
    End If
    //检测进程组
    进程组 = "qq.exe|notepad.exe"
    返回值 = IsProcessEx(进程组)
    If 返回值 = True Then
    MessageBox "发现进程"
    ElseIf 返回值 = False Then
    MessageBox "没有发现进程"
    End If
    //检测进程组 优化后的代码
    If IsProcessEx("qq.exe|notepad.exe") = True Then 
    MessageBox "发现进程"
    Else 
    MessageBox "没有发现进程"
    End If
    //结束进程 前台执行
    进程名 = "qq.exe"
    Call CloseProcess(进程名, 1)
    //结束进程 后台执行
    进程名 = "qq.exe"
    Call CloseProcess(进程名, 0)
    //结束进程组 前台执行
    进程组 = "qq.exe|notepad.exe"
    Call CloseProcessEx(进程组, 1)
    //结束进程组 后台执行
    进程组 = "qq.exe|notepad.exe"
    Call CloseProcessEx(进程组, 0)
    //实例应用 结束进程 前台执行 10秒超时
    进程名 = "qq.exe"
    For 10
    Call CloseProcess(进程名,1)
    Delay 1000
    返回值 = IsProcess(进程名)
    If 返回值 = False Then
    Exit For
    End If
    Next
    If 返回值=True Then
    MessageBox "结束进程失败"
    Else
    MessageBox "结束进程成功"
    End If
    //实例应用 结束进程 前台执行 优化后的代码(直到型循环) 有些进程VBS检测不到 所以先关闭后检测
    Do
    Call CloseProcess("qq.exe",1)
    Delay 1000
    Loop While IsProcess("qq.exe")=True
    MessageBox "结束进程成功"
    //实例应用 结束进程组 后台执行 10秒超时
    进程组 = "qq.exe|notepad.exe"
    For 10
    Call CloseProcessEx(进程组,0)
    Delay 1000
    返回值 = IsProcessEx(进程组)
    If 返回值 = False Then
    Exit For
    End If
    Next
    If 返回值=True Then
    MessageBox "结束进程失败"
    Else
    MessageBox "结束进程成功"
    End If
    //实例应用 结束进程组 后台执行 优化后的代码(直到型循环) 有些进程VBS检测不到 所以先关闭后检测
    Do
    Call CloseProcessEx( "qq.exe|notepad.exe",0)
    Delay 1000
    Loop While IsProcessEx( "qq.exe|notepad.exe")=True
    MessageBox "结束进程成功"
    //函数 子程序部分代码
    //检测进程
    Function IsProcess(ExeName)
    Dim WMI, Obj, Objs,i
    IsProcess = False
    Set WMI = GetObject("WinMgmts:")
    Set Objs = WMI.InstancesOf("Win32_Process")
    For Each Obj In Objs
    If InStr(UCase(ExeName),UCase(Obj.Description)) <> 0 Then
    IsProcess = True
    Exit For
    End If
    Next
    Set Objs = Nothing
    Set WMI = Nothing
    End Function
    //结束进程
    Sub CloseProcess(ExeName,RunMode)
    dim ws
    Set ws = createobject("Wscript.Shell")
    ws.run "cmd.exe /C Taskkill /f /im " & ExeName,RunMode
    Set ws = Nothing
    End Sub
    //检测进程组
    Function IsProcessEx(ExeName)
    Dim WMI, Obj, Objs,ProcessName,i
    IsProcessEx = False
    Set WMI = GetObject("WinMgmts:")
    Set Objs = WMI.InstancesOf("Win32_Process")
    ProcessName=Split(ExeName,"|")
    For Each Obj In Objs
    For i=0 to UBound(ProcessName)
    If InStr(UCase(ProcessName(i)),UCase(Obj.Description)) <> 0 Then
    IsProcessEx = True
    Exit For
    End If
    Next
    Next
    Set Objs = Nothing
    Set WMI = Nothing
    End Function
    //结束进程组
    Sub CloseProcessEx(ExeName,RunMode)
    dim ws,ProcessName,CmdCode,i
    ProcessName = Split(ExeName, "|")
    For i=0 to UBound(ProcessName)
    CmdCode=CmdCode & " /im " & ProcessName(i)
    Next
    Set ws = createobject("Wscript.Shell")
    ws.run "cmd.exe /C Taskkill /f" & CmdCode,RunMode
    Set ws = Nothing
    End Sub

    js
下一篇:没有了