• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    VBS进程判断代码

    vbs核心代码

    Option Explicit
    Dim objWMIService,colProcessList,strComputer
    strComputer = "."
    Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\"  strComputer  "\root\cimv2")
    Set colProcessList = objWMIService.ExecQuery("Select * from Win32_Process Where Name = 'excel.exe'")
    If colProcessList.Count>0 Then
    	MsgBox "检测到EXCEL程序运行中,程序退出!"
    	WScript.Quit
    End If
    Set colProcessList = Nothing
    Set objWMIService = Nothing
    WScript.Quit

    当然你可以判断 winrar.exe等等

    下面附一个代码,原来中文命名的,脚本之家已经修改为英文命名并且正常运行了,因为时间问题,需要的朋友可以自行修改精简

    '检测进程
    proname = "qq.exe"
    reName = IsProcess(proname)
    If reName = True Then
      msgbox "发现进程"
    ElseIf reName = False Then
      msgbox "没有发现进程"
    End If
    '检测进程 优化后的代码
    If IsProcess("qq.exe") = True Then 
      msgbox "发现进程"
    Else 
      msgbox "没有发现进程"
    End If
    '检测进程组
    proName_all = "qq.exe|notepad.exe"
    reName = IsProcessEx(proName_all)
    If reName = True Then
      msgbox "发现进程"
    ElseIf reName = False Then
      msgbox "没有发现进程"
    End If
    '检测进程组 优化后的代码
    If IsProcessEx("qq.exe|notepad.exe") = True Then 
      msgbox "发现进程"
    Else 
      msgbox "没有发现进程"
    End If
    '结束进程 前台执行
    proname = "qq.exe"
      Call CloseProcess(proname, 1)
    '结束进程 后台执行
    proname = "qq.exe"
      Call CloseProcess(proname, 0)
      '结束进程组 前台执行
    proName_all = "qq.exe|notepad.exe"
      Call CloseProcessEx(proName_all, 1)
    '结束进程组 后台执行
    proName_all = "qq.exe|notepad.exe"
      Call CloseProcessEx(proName_all, 0)
    '实例应用 结束进程 前台执行 10秒超时
    proname = "qq.exe"
    For i=1 to 10
      Call CloseProcess(proname,1)
      Delay 1000
      reName = IsProcess(proname)
      If reName = False Then
        Exit For
      End If
    Next
    If reName=True Then
      msgbox "结束进程失败"
    Else
      msgbox "结束进程成功"
    End If
    '实例应用 结束进程 前台执行 优化后的代码(直到型循环) 有些进程VBS检测不到 所以先关闭后检测
    Do
      Call CloseProcess("qq.exe",1)
      Delay 1000
    Loop While IsProcess("qq.exe")=True
    msgbox "结束进程成功"
    '实例应用 结束进程组 后台执行 10秒超时
    proName_all = "qq.exe|notepad.exe"
    For j=1 to 10
      Call CloseProcessEx(proName_all,0)
      Delay 1000
      reName = IsProcessEx(proName_all)
      If reName = False Then
        Exit For
      End If
    Next
    If reName=True Then
      msgbox "结束进程失败"
    Else
      msgbox "结束进程成功"
    End If
    '实例应用 结束进程组 后台执行 优化后的代码(直到型循环) 有些进程VBS检测不到 所以先关闭后检测
    Do
      Call CloseProcessEx( "qq.exe|notepad.exe",0)
      Delay 1000
    Loop While IsProcessEx( "qq.exe|notepad.exe")=True
    msgbox "结束进程成功"
    '函数 子程序部分代码
    '检测进程
    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

    好了这篇关于vbs进程判断的文章就介绍到这

    您可能感兴趣的文章:
    • DOS中判断进程是否存在的方法
    • windows服务器维护经验小结(rsync,serv_u)
    上一篇:使用VBS浏览本地文件的3种方式,获取完整路径
    下一篇:VBS遍历文件或文件夹路径输入文件的所有绝对路径(附源码)
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    VBS进程判断代码 VBS,进程,判断,代码,VBS,进程,