• 设为首页
  • 收藏本站
  • 积分充值
  • VIP赞助
  • 手机版
  • 微博
  • 微信
    微信公众号 添加方式:
    1:搜索微信号(888888
    2:扫描左侧二维码
  • 快捷导航
    福建二哥 门户 查看主题

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

    发布者: 嘉6148 | 发布时间: 2025-8-14 00:20| 查看数: 59| 评论数: 0|帖子模式

    今天要说的是用VBS(VBScript脚本)来枚举Windows操作系统的进程,这样做的用处在什么地方呢?举个例子吧,比如你有时候想监控某个进程是否在运行,这就非常有用了.
    示例:
    用VBS脚本枚举进程
    1. 'enum.vbs
    2. Dim WMI,Objs,Process
    3. Set WMI=GetObject("WinMgmts:")
    4. Set Objs=WMI.InstancesOf("Win32_Process")
    5. Process=""
    6. For Each Obj In Objs
    7.   Process=Process & Obj.Description & Chr(13) & Chr(10)
    8. Next
    9. MsgBox Process
    复制代码
    我在这儿采用的方式是弹出一个对话框,方便观看嘛,当然你也可以使用FSO来生成一个文本文件保存起来.
    前面说到要监控某个进程是否在运行,实现如下.
    示例:
    1. 'monitor.vbs
    2. '检测IE是否在运行中
    3. Dim WMI,Objs,Process
    4. Set WMI=GetObject("WinMgmts:")
    5. Set Objs=WMI.InstancesOf("Win32_Process")
    6. Process=""
    7. For Each Obj In Objs
    8. 'Process=Process & Obj.Description & Chr(13) & Chr(10)
    9. Process = Obj.Description
    10. if Process = "iexplore.exe" then
    11. msgbox "IE在运行中..."
    12. end if
    13. Next
    复制代码
    呵呵,当然,还可以引申出来其它应用.
    下面给大家分享一个列举进程详细列表的vbs
    1. ' FileName: ProcessMagnifier.vbs
    2. ' Function: Capture information about the running processes in detail
    3. ' code by somebody
    4. ' QQ: 240460440
    5. ' LastModified: 2007-12-9 18:50

    6. const HKEY_CURRENT_USER = &H80000001
    7. Set oReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")
    8. strKeyPath = "Console\%SystemRoot%_system32_cmd.exe"
    9. oReg.CreateKey HKEY_CURRENT_USER,strKeyPath
    10. strValueName1 = "CodePage"
    11. dwValue1 = 936
    12. strValueName2 = "ScreenBufferSize"
    13. dwValue2 = 98304200
    14. strValueName3 = "WindowSize"
    15. dwValue3 = 2818173
    16. strValueName4 = "HistoryNoDup"
    17. dwValue4 = 0
    18. strValueName5 = "WindowPosition"
    19. dwValue5 = 131068
    20. strValueName6 = "QuickEdit"
    21. dwValue6 = 2048
    22. oReg.SetDWORDValue HKEY_CURRENT_USER,strKeyPath,strValueName1,dwValue1
    23. oReg.SetDWORDValue HKEY_CURRENT_USER,strKeyPath,strValueName2,dwValue2
    24. oReg.SetDWORDValue HKEY_CURRENT_USER,strKeyPath,strValueName3,dwValue3
    25. oReg.SetDWORDValue HKEY_CURRENT_USER,strKeyPath,strValueName4,dwValue4
    26. oReg.SetDWORDValue HKEY_CURRENT_USER,strKeyPath,strValueName5,dwValue5
    27. oReg.SetDWORDValue HKEY_CURRENT_USER,strKeyPath,strValueName6,dwValue6

    28. Dim objWSH, FinalPath
    29. Set objWSH = WScript.CreateObject("WScript.Shell")
    30. If (Lcase(Right(WScript.Fullname,11))="wscript.exe") Then
    31.   FinalPath = "'" & WScript.ScriptFullName & "'"
    32.   objWSH.Run("cmd.exe /k cscript //nologo " &Replace(FinalPath,"'",""""))
    33.   WScript.Quit
    34. End If

    35. oReg.DeleteKey HKEY_CURRENT_USER, strKeyPath
    36. Set oReg = nothing

    37. Wscript.Sleep 1000
    38. Mystr = Array(115,111,109,101,98,111,100,121)
    39. for i=0 to Ubound(Mystr)
    40.   author=author&chr(Mystr(i))

    41. Next

    42. WScript.Echo
    43. WScript.Sleep 3000
    44. WScript.Echo "当前正在运行的进程简要信息列表如下:"
    45. WScript.Echo vbCrLf
    46. WScript.Sleep 2000

    47. Dim MyOBJProcessName
    48. Set OBJWMIProcess = GetObject("winmgmts:\\.\root\cimv2").ExecQuery("Select * From Win32_Process")
    49.      WScript.Echo "Name:        Priority:  PID:  Owner:" &vbTab&vbTab&"ExecutablePath: "
    50.      WScript.Echo "---------------------------------------------------------------------------------------"
    51.          For Each OBJProcess in OBJWMIProcess
    52.      MyOBJProcessName=OBJProcess.Name&"          "
    53.          colProperties = OBJProcess.GetOwner(strNameOfUser,strUserDomain)
    54.      WScript.Echo Mid(MyOBJProcessName,1,20) &vbTab& OBJProcess.Priority &vbTab& OBJProcess.ProcessID &vbTab& strNameOfUser &vbTab&vbTab& OBJProcess.ExecutablePath
    55.      Next
    56.    
    57. WScript.Sleep 5000
    58. WScript.Echo vbCrLf
    59. WScript.Echo "当前正在运行的进程以及其加载的模块详细信息树状结构如下:"
    60. WScript.Echo vbCrLf
    61. WScript.Sleep 3000
    62. WScript.Echo vbTab&vbTab&vbTab&vbTab&vbTab&vbTab&vbTab&vbTab&vbTab&vbTab&vbTab&vbTab&vbTab&vbTab&vbTab&vbTab& vbTab&"创建时间       文件制造商"

    63. Set OBJWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
    64. Set OBJRefresher = CreateObject("WbemScripting.SWbemRefresher")
    65. Set colItems = OBJRefresher.AddEnum(OBJWMIService,"Win32_PerfFormattedData_PerfProc_FullImage_Costly").ObjectSet
    66. OBJRefresher.Refresh
    67. For Each OBJItem In colItems
    68.   Dim originalPath, ModulePath, WMIPathMode, FileManufacturer, LCaseModulePath
    69.     Dim FileExtension, mark, MyLCaseModulePath, FinalModulePath
    70.   originalPath = OBJItem.Name
    71.   ModulePath = Split(originalPath,"/")
    72.   WMIPathMode = Replace(ModulePath(1),"","\")
    73.   Set OBJWMI = GetObject("winmgmts:\\.\root\CIMV2")
    74.   Set colManufacturer = OBJWMI.ExecQuery("SELECT * FROM CIM_DataFile Where Name='" & WMIPathMode & "'")
    75.   For Each OBJManufacturer In colManufacturer
    76.       FileManufacturer=Trim(OBJManufacturer.Manufacturer)
    77.       LCaseModulePath=LCase(Trim(OBJManufacturer.Name))
    78.       FileExtension=Right(LCaseModulePath, 3)
    79.       MyLCaseModulePath=LCaseModulePath & "                                                        "
    80.       Set FSO = CreateObject("Scripting.FileSystemObject").GetFile(LCaseModulePath)
    81.                If FileExtension="exe" Then
    82.             mark="├—"
    83.               FinalModulePath=Mid(MyLCaseModulePath,1,118)
    84.               WScript.Echo "│"               
    85.           Else
    86.         mark="│├─"
    87.               FinalModulePath=Mid(MyLCaseModulePath,1,116)
    88.           End If
    89.       WScript.Echo mark & FinalModulePath & FSO.DateCreated &vbTab& FileManufacturer            
    90.     Next
    91. Next

    92. MyVBSPath = "'" & WScript.ScriptFullName & "'"   
    93. Myclipboard = "cscript //nologo " & Replace(MyVBSPath,"'","""")
    94. Set objIE = CreateObject("InternetExplorer.Application")
    95. objIE.Navigate("about:blank")
    96. objIE.document.parentwindow.clipboardData.SetData "text", Myclipboard
    复制代码
    经过测试效果很不错,喜欢vbs的朋友可以学习一下。

    来源:互联网
    免责声明:如果侵犯了您的权益,请联系站长(1277306191@qq.com),我们会及时删除侵权内容,谢谢合作!

    最新评论

    QQ Archiver 手机版 小黑屋 福建二哥 ( 闽ICP备2022004717号|闽公网安备35052402000345号 )

    Powered by Discuz! X3.5 © 2001-2023

    快速回复 返回顶部 返回列表