如何使一个VBScript循环静默运行?

9 浏览
0 Comments

如何使一个VBScript循环静默运行?

我有一个VBScript,应该使用循环终止mspaint.exe进程。

Dim oShell : Set oShell = CreateObject("WScript.Shell")
do
WScript.Sleep 3000
' 结束画图 '
oShell.Run "taskkill /im mspaint.exe", , True
loop

它可以工作,然而每次循环时,一个命令提示窗口会成为最上层和活动窗口约半秒钟,然后关闭。这很不方便,因为我希望它在后台运行。

0
0 Comments

程序员无法运行用户的命令。他们需要一种方式来在后台运行某些任务,而不打扰用户。在VBScript中,有一种循环结构可以实现这一点。下面是一个示例代码块,展示了如何使用VBScript创建一个静默循环:

Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Do
    Set colItems = objWMIService.ExecQuery("Select * From Win32_Process")
    For Each objItem in colItems
        If LCase(objItem.name) = "mspaint.exe" then 
                objItem.terminate
        End If
    Next
    WScript.Sleep 3000
Loop

以上代码使用WMI(Windows Management Instrumentation)查询当前正在运行的进程,并检查是否有名为"mspaint.exe"的进程。如果找到了这个进程,就会终止它。然后,脚本会休眠3秒钟,然后再次执行循环。

这种循环结构可以在后台持续运行,而不会显示任何消息或对用户产生任何干扰。这对于需要定期执行某个任务的情况非常有用。

要使这个循环完全静默运行,可以将脚本保存为.vbs文件,并使用Windows的任务计划程序来定期运行它。这样,脚本将在后台默默地执行,而用户将不会注意到它的存在。

通过这种方式,程序员可以在不干扰用户的情况下运行循环,并在后台执行某些任务。这对于自动化和批处理任务非常有用,因为它们可以在不打扰用户的情况下运行,并且可以根据需要定期执行。

0