Loops 如何编写vbscript,该脚本将持续检查应用程序是否未运行,并停止检查应用程序是否正在运行
我目前是学习vbscript代码的初学者。我希望此代码在后台以静默方式运行批处理文件,然后检查进程“DesktopHut.exe”是否正在运行,它将WshShell.AppActivate Desktop.exe并将其最小化。如果“DesktopHut.exe”未运行。我希望代码循环检查,直到它运行。基本上,这是我的代码:Loops 如何编写vbscript,该脚本将持续检查应用程序是否未运行,并停止检查应用程序是否正在运行,loops,vbscript,Loops,Vbscript,我目前是学习vbscript代码的初学者。我希望此代码在后台以静默方式运行批处理文件,然后检查进程“DesktopHut.exe”是否正在运行,它将WshShell.AppActivate Desktop.exe并将其最小化。如果“DesktopHut.exe”未运行。我希望代码循环检查,直到它运行。基本上,这是我的代码: Dim i Dim strComputer Dim FindProc Set WshShell = CreateObject("WScript.Shell&quo
Dim i
Dim strComputer
Dim FindProc
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run chr(34) & "C:\Users\Vincent Buenaventura\Documents\Visualizer On and Off Bat\Visualizer ON" & Chr(34), 0
strComputer = "."
FindProc = "DesktopHut.exe"
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcessList = objWMIService.ExecQuery _
("Select Name from Win32_Process WHERE Name LIKE '" & FindProc & "%'")
Do Until colProcessList.count>0
WshShell.AppActivate("DesktopHut.com App For Live Wallpaper")
WshShell.SendKeys "% n"
loop
Set Wshell = nothing
WScript.Quit
它以某种方式工作,但循环根本不会结束。如果有人能帮我修改上面的代码,那将是我的荣幸。我正在研究我所能做的一切,只是为了替换这段代码,因为我的电脑并不总是按时运行应用程序,所以它最终不会最小化应用程序。每次我启动电脑都有点烦
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run chr(34) & "C:\Users\Vincent Buenaventura\Documents\Visualizer On and Off Bat\Visualizer ON" & Chr(34), 0
WScript.Sleep 2000
WshShell.AppActivate("DesktopHut.com App For Live Wallpaper")
WshShell.SendKeys "% n"
Set Wshell = nothing
WScript.Quit
快速补充说明:我知道有关于DesktopHut有病毒的新闻,但当我在自己的电脑上进行研究和测试时,“病毒”似乎只适用于Windows 10上非常更新的DesktopHut版本
我当前运行的是Windows 8.1单语言。我将使用以下VBScript:
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run chr(34) & "C:\Users\Vincent Buenaventura\Documents\Visualizer On and Off Bat\Visualizer ON" & Chr(34)
sComputerName = "."
Set objWMIService = GetObject("winmgmts:\\" & sComputerName & "\root\cimv2")
sQuery = "SELECT * FROM Win32_Process"
Set objItems = objWMIService.ExecQuery(sQuery)
For Each objItem In objItems
If objItem.Name == "DesktopHut.exe" Then
WshShell.AppActivate "DesktopHut.com App For Live Wallpaper"
Wscript.Sleep 2000
WshShell.SendKeys "%n"
End If
Next
我已删除[]标记。您正在运行的文件类型与您的问题无关,具体到[]我尝试运行该代码,但它似乎没有运行WshShell.AppActivate“DesktopHut.com应用程序For Live Wallpaper”Wscript.Sleep 2000 WshShell.SendKeys“%n”我希望它循环查找,直到找到正在运行的应用程序,然后它会执行,但它似乎不起作用。你能不能解释一下代码,因为我真的很难理解(