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

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    vbs枚举进程 vbs列出进程的详细列表

    今天要说的是用VBS(VBScript脚本)来枚举Windows操作系统的进程,这样做的用处在什么地方呢?举个例子吧,比如你有时候想监控某个进程是否在运行,这就非常有用了.

    示例:

    用VBS脚本枚举进程

    'enum.vbs
    Dim WMI,Objs,Process
    Set WMI=GetObject("WinMgmts:")
    Set Objs=WMI.InstancesOf("Win32_Process")
    Process=""
    For Each Obj In Objs
      Process=Process  Obj.Description  Chr(13)  Chr(10)
    Next
    MsgBox Process

    我在这儿采用的方式是弹出一个对话框,方便观看嘛,当然你也可以使用FSO来生成一个文本文件保存起来.
    前面说到要监控某个进程是否在运行,实现如下.
    示例:

    'monitor.vbs
    '检测IE是否在运行中
    Dim WMI,Objs,Process
    Set WMI=GetObject("WinMgmts:")
    Set Objs=WMI.InstancesOf("Win32_Process")
    Process=""
    For Each Obj In Objs
    'Process=Process  Obj.Description  Chr(13)  Chr(10)
    Process = Obj.Description
    if Process = "iexplore.exe" then
    msgbox "IE在运行中..."
    end if
    Next

    呵呵,当然,还可以引申出来其它应用.

    下面给大家分享一个列举进程详细列表的vbs

    ' FileName: ProcessMagnifier.vbs
    ' Function: Capture information about the running processes in detail
    ' code by somebody
    ' QQ: 240460440
    ' LastModified: 2007-12-9 18:50
    
    const HKEY_CURRENT_USER = H80000001
    Set oReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")
    strKeyPath = "Console\%SystemRoot%_system32_cmd.exe"
    oReg.CreateKey HKEY_CURRENT_USER,strKeyPath
    strValueName1 = "CodePage"
    dwValue1 = 936
    strValueName2 = "ScreenBufferSize"
    dwValue2 = 98304200
    strValueName3 = "WindowSize"
    dwValue3 = 2818173
    strValueName4 = "HistoryNoDup"
    dwValue4 = 0
    strValueName5 = "WindowPosition"
    dwValue5 = 131068
    strValueName6 = "QuickEdit"
    dwValue6 = 2048
    oReg.SetDWORDValue HKEY_CURRENT_USER,strKeyPath,strValueName1,dwValue1
    oReg.SetDWORDValue HKEY_CURRENT_USER,strKeyPath,strValueName2,dwValue2
    oReg.SetDWORDValue HKEY_CURRENT_USER,strKeyPath,strValueName3,dwValue3
    oReg.SetDWORDValue HKEY_CURRENT_USER,strKeyPath,strValueName4,dwValue4
    oReg.SetDWORDValue HKEY_CURRENT_USER,strKeyPath,strValueName5,dwValue5
    oReg.SetDWORDValue HKEY_CURRENT_USER,strKeyPath,strValueName6,dwValue6
    
    Dim objWSH, FinalPath
    Set objWSH = WScript.CreateObject("WScript.Shell")
    If (Lcase(Right(WScript.Fullname,11))="wscript.exe") Then
      FinalPath = "'"  WScript.ScriptFullName  "'"
      objWSH.Run("cmd.exe /k cscript //nologo " Replace(FinalPath,"'",""""))
      WScript.Quit
    End If
    
    oReg.DeleteKey HKEY_CURRENT_USER, strKeyPath
    Set oReg = nothing
    
    Wscript.Sleep 1000
    Mystr = Array(115,111,109,101,98,111,100,121)
    for i=0 to Ubound(Mystr)
      author=authorchr(Mystr(i))
    
    Next
    
    WScript.Echo
    WScript.Sleep 3000
    WScript.Echo "当前正在运行的进程简要信息列表如下:"
    WScript.Echo vbCrLf
    WScript.Sleep 2000
    
    Dim MyOBJProcessName
    Set OBJWMIProcess = GetObject("winmgmts:\\.\root\cimv2").ExecQuery("Select * From Win32_Process")
         WScript.Echo "Name:        Priority:  PID:  Owner:" vbTabvbTab"ExecutablePath: "
         WScript.Echo "---------------------------------------------------------------------------------------"
             For Each OBJProcess in OBJWMIProcess
         MyOBJProcessName=OBJProcess.Name"          "
             colProperties = OBJProcess.GetOwner(strNameOfUser,strUserDomain)
         WScript.Echo Mid(MyOBJProcessName,1,20) vbTab OBJProcess.Priority vbTab OBJProcess.ProcessID vbTab strNameOfUser vbTabvbTab OBJProcess.ExecutablePath
         Next
        
    WScript.Sleep 5000
    WScript.Echo vbCrLf
    WScript.Echo "当前正在运行的进程以及其加载的模块详细信息树状结构如下:"
    WScript.Echo vbCrLf
    WScript.Sleep 3000
    WScript.Echo vbTabvbTabvbTabvbTabvbTabvbTabvbTabvbTabvbTabvbTabvbTabvbTabvbTabvbTabvbTabvbTab vbTab"创建时间       文件制造商"
    
    Set OBJWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
    Set OBJRefresher = CreateObject("WbemScripting.SWbemRefresher")
    Set colItems = OBJRefresher.AddEnum(OBJWMIService,"Win32_PerfFormattedData_PerfProc_FullImage_Costly").ObjectSet
    OBJRefresher.Refresh
    For Each OBJItem In colItems
      Dim originalPath, ModulePath, WMIPathMode, FileManufacturer, LCaseModulePath
        Dim FileExtension, mark, MyLCaseModulePath, FinalModulePath
      originalPath = OBJItem.Name
      ModulePath = Split(originalPath,"/")
      WMIPathMode = Replace(ModulePath(1),"\","\\")
      Set OBJWMI = GetObject("winmgmts:\\.\root\CIMV2")
      Set colManufacturer = OBJWMI.ExecQuery("SELECT * FROM CIM_DataFile Where Name='"  WMIPathMode  "'")
      For Each OBJManufacturer In colManufacturer
          FileManufacturer=Trim(OBJManufacturer.Manufacturer)
          LCaseModulePath=LCase(Trim(OBJManufacturer.Name))
          FileExtension=Right(LCaseModulePath, 3)
          MyLCaseModulePath=LCaseModulePath  "                                                        "
          Set FSO = CreateObject("Scripting.FileSystemObject").GetFile(LCaseModulePath)
                   If FileExtension="exe" Then
                mark="├—"
                  FinalModulePath=Mid(MyLCaseModulePath,1,118)
                  WScript.Echo "│"                
              Else 
            mark="│├─"
                  FinalModulePath=Mid(MyLCaseModulePath,1,116)
              End If
          WScript.Echo mark  FinalModulePath  FSO.DateCreated vbTab FileManufacturer             
        Next
    Next
    
    MyVBSPath = "'"  WScript.ScriptFullName  "'"    
    Myclipboard = "cscript //nologo "  Replace(MyVBSPath,"'","""")
    Set objIE = CreateObject("InternetExplorer.Application") 
    objIE.Navigate("about:blank") 
    objIE.document.parentwindow.clipboardData.SetData "text", Myclipboard
    

    经过测试效果很不错,喜欢vbs的朋友可以学习一下。

    上一篇:VBA中的Timer函数用法
    下一篇:查询电脑开关机时间的vbs代码
  • 相关文章
  • 

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

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

    vbs枚举进程 vbs列出进程的详细列表 vbs,枚举,进程,列出,的,详细,