求这样一个功能的vbs(以前在那里看到过,现在实在找不到了!):
每当打开一个程序的时候,检查该程序是不是文本文件中规定的程序,是的话就关闭它!(好象要用到wmi里的一个什么创建事件)。
每当打开一个程序的时候,检查该程序是不是文本文件中规定的程序,是的话就关闭它!(好象要用到wmi里的一个什么创建事件)。
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!
sProcess = "iexplore.exe"
Set oWMI = GetObject("Winmgmts:")
Set oExec = oWMI.ExecNotificationQuery( _
"Select * From __instanceCreationEvent " & _
"WithIn 1 Where TargetInstance ISA 'Win32_Process'")
Do
Set oNextEvent = oExec.NextEvent
sName = oNextEvent.TargetInstance.Name
If sProcess = LCase(sName) Then
MsgBox sName
End If
Loop
Do
For Each x In GetObject("Winmgmts:Win32_Process").Instances_
If "iexplore.exe" = LCase(x.Name) Then
WScript.Echo x.Name
End If
Next
WScript.Sleep 200
Loop
Originally posted by wfyinghun at 2009-12-14 14:31:
thanks,我试过了,这2个脚本都能实现,不过第二个脚本占用cpu资源比第一个高多了!
Set oWMI = GetObject("Winmgmts:")
Set oRefresher = CreateObject("WbemScripting.SWbemRefresher")
Set colProcess = oRefresher.AddEnum(oWMI,"Win32_Process").ObjectSet
Do
oRefresher.Refresh
For Each x In colProcess
WScript.Echo x.Name
Next
WScript.Sleep 200
Loop
Originally posted by wfyinghun at 2009-12-14 10:32 PM:
以前学的东西忘了很多了,弱弱的问一下,怎么样修改代码使它结束进程而不是显示进程名字,把MsgBox sName或者wscript echo x.name 换成什么?