求一个vbs命令,判断某程序是否启动成功的命令,如果判断该程序启动成功则退出vbs脚本,如果判断该程序没有启动,则重新启动计算机

求一个vbs命令,情况是这样的,每次电脑开机5分钟后,通过win7计划任务启动该vbs脚本。
目的是判断程序BstkSVC.exe是否启动成功,如果判断BstkSVC.exe启动成功则退出vbs脚本,如果判断BstkSVC.exe没有启动,则重新启动计算机。
求详细命令

望采纳!!!点击回答右侧采纳即可!!

' 定义程序名
programName = "程序.exe"

' 循环检测程序是否启动成功
Do
    ' 检测程序是否启动
    Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
    Set colProcess = objWMIService.ExecQuery _
        ("Select * from Win32_Process Where Name = '" & programName & "'")
    If colProcess.Count = 0 Then
        ' 程序未启动
        WScript.Echo "程序未启动,重新启动计算机"
        Set objShell = CreateObject("WScript.Shell")
        objShell.Run "shutdown -r -t 0", 0, True
    Else
        ' 程序已启动
        WScript.Echo "程序已启动"
        WScript.Quit
    End If
    ' 每隔一段时间检测一次
    WScript.Sleep 5000
Loop


给个思路,具体实现不太清楚,就是如果启动成功,会有新的进程pid,可以获取该exe对应的pid如果获取到则启动成功,反之。pid可以通过cmd来获取

这是一个 VBS 脚本示例,可以通过 Windows 7 的计划任务来启动,在脚本中判断程序 BstkSVC.exe 是否已经启动,如果启动成功则退出脚本,如果没有启动则重新启动计算机。

' 五分钟后判断BstkSVC.exe是否已经启动
WScript.Sleep 300000

' 检查BstkSVC.exe是否已经启动
Set objWMIService = GetObject("winmgmts:")
Set colProcessList = objWMIService.ExecQuery _
    ("Select * from Win32_Process Where Name = 'BstkSVC.exe'")

' 如果BstkSVC.exe已经启动
If colProcessList.Count > 0 Then
    WScript.Quit
End If

' BstkSVC.exe没有启动,重新启动计算机
Set objShell = CreateObject("WScript.Shell")
objShell.Run "shutdown /r /f /t 0"

这个脚本会在启动后等待5分钟,然后检查BstkSVC.exe是否已经运行,若已经运行,则退出。否则重新启动计算机。

这是个X-Y问题吗?