[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[问题求助] 请改进一步结束进程的VBS代码

以下是监控QQ程序并关闭它的代码,但有两个不足:
一是会出现类似病毒提示的“有程序要结束QQ进程,是否允许执行?”,如何去除?
二是不能出现“此程序已禁止运行,5秒后将自动关闭”这样的提示框,
哪位高手能改进?谢谢!
  1. do
  2. set ws=createobject("wscript.shell")
  3. dim test
  4. test=False
  5. set wing=getobject("winmgmts:\\.\root\cimv2")
  6. set jincheng=wing.execquery("select * from win32_process where name='QQ.exe'")
  7. For Each id In jincheng
  8. test = True
  9. Next
  10. If test then
  11. ws.run"taskkill /im QQ.exe /f /t"
  12. End If
  13. wscript.sleep 3000
  14. loop
复制代码

换一台电脑,打开QQ,结果出现这个了,为什么?

TOP

回复 3# batman


    谢谢!!
代码可以用,但是没有提示框,这个有提示框,但没法倒计时!

do
on error resume next
set bag=getobject("winmgmts:\\.\root\cimv2")
set pipe=bag.execquery("select * from win32_process where name='QQ.exe'")
For Each id In pipe
id.terminate
MsgBox "你不能用QQ"
Next
wscript.sleep 500
loop

TOP

回复 3# batman


    或者直接用老师的下半部分也行

Dim objWMI, objEvents, objEvent
Set objWMI = GetObject("Winmgmts:\\.\Root\Cimv2")
Set objEvents = objWMI.ExecNotifiCationQuery _
  ("Select * From __InstanceOperationEvent Within 5 " _
    & "Where TargetInstance Isa 'Win32_Process'")
Do While True
  Set objEvent = objEvents.NextEvent()
  If LCase(objEvent.TargetInstance.Name) = "qq.exe" Then
    If objEvent.Path_.Class = "__InstanceCreationEvent" _
      Then objEvent.TargetInstance.Terminate
   MsgBox "对不起,你不能用QQ"
  End If
Loop

TOP

当while中条件为真时(也就是true)循环继续执行。否则循环结束。

TOP

返回列表