'==========================================================================
' 可执行程序随某程序加载而加载,随其退出而退出功能的 VBS 代码
'
' proname1="Ni.exe" '需要监测的服务进程的名称
' proname2="calc.exe" '附加进程
'
' VBS 检测进程proname1是否存在,如果存在就启动proname2 进程。
' ,如果不存在就终止proname2 进程。
'
'==========================================================================
option Explicit
dim wmi,proc,procs1,procs2,proname1,proname2,proname1_Y,proname2_Y,WshShell
Do
proname1="Ni.exe" '需要监测的服务进程的名称
proname2="calc.exe" '附加进程
set wmi=getobject("winmgmts:{impersonationlevel=impersonate}!//./root/cimv2")
set procs1=wmi.execquery("select * from win32_process ")
proname1_Y="false"
for each proc in procs1
if strcomp(proc.name,proname1)=0 then
proname1_Y="true"
exit for
else
proname1_Y="false"
end if
next
proname2_Y="false"
for each proc in procs1
if strcomp(proc.name,proname2)=0 then
proname2_Y="true"
exit for
else
proname2_Y="false"
end if
next
'wscript.echo proname1_Y,proname2_Y
if proname1_Y="true" and proname2_Y="false" then
Set WshShell = CreateObject("Wscript.Shell")
WshShell.Run ("C:/windows/system32/calc.exe")
end if
if proname1_Y="false" and proname2_Y="true" then
set procs2=wmi.execquery("select * from win32_process where name='calc.exe'")
for each proc in procs2
proc.terminate()
next
end if
set wmi=nothing
loop