用VBS實(shí)現(xiàn)監(jiān)視進(jìn)程創(chuàng)建與刪除的代碼

字號(hào):


    監(jiān)視進(jìn)程的創(chuàng)建,在每次創(chuàng)建新的進(jìn)程時(shí),臨時(shí)事件消費(fèi)程序都發(fā)出警報(bào)。
    1.監(jiān)視進(jìn)程的創(chuàng)建
    代碼如下:
    strComputer = "."
    Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    Set colMonitoredProcesses = objWMIService. _
    ExecNotificationQuery("select * from __instancecreationevent " _
    & " within 1 where TargetInstance isa 'Win32_Process'")
    i = 0
    Do While i = 0
    Set objLatestProcess = colMonitoredProcesses.NextEvent
    Wscript.Echo objLatestProcess.TargetInstance.Name
    Loop
    2.監(jiān)視進(jìn)程的刪除,在每次進(jìn)程終止時(shí),臨時(shí)事件消費(fèi)程序都發(fā)出警報(bào)。
    代碼如下:
    strComputer = "."
    Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    Set colMonitoredProcesses = objWMIService. _
    ExecNotificationQuery("select * from __instancedeletionevent " _
    & "within 1 where TargetInstance isa 'Win32_Process'")
    i = 0
    Do While i = 0
    Set objLatestProcess = colMonitoredProcesses.NextEvent
    Wscript.Echo objLatestProcess.TargetInstance.Name
    Loop
    3.監(jiān)視進(jìn)程使用處理器的情況
    代碼如下:
    strComputer = "."
    Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    Set colProcesses = objWMIService.ExecQuery _
    ("Select * from Win32_process")
    For Each objProcess in colProcesses
    sngProcessTime = ( CSng(objProcess.KernelModeTime) + _
    CSng(objProcess.UserModeTime)) / 10000000
    Wscript