1

Я запускаю следующий скрипт VBS,

set service = GetObject ("winmgmts:")

for Process in Service.Instanceof ("Win32_Process")
If Process.Name = "notepad.exe" then
Wscript.echo "Notepad running"
Wscript.quit
End If
next
Wscript.echo "notepad not running"

Notepad running если он работает, и Notepad not running если он не работает.

Но мне нужна эта программа, чтобы зациклить, пока блокнот не закроется. После того, как блокнот закроется, нужно открыть файл run.bat

Примечание: только если блокнот закрывается, он должен запускать run.bat если блокнот не закрывается, он должен продолжать проверку до его закрытия (в фоновом режиме)

Пожалуйста, помогите мне, ребята ..Так много спасибо ... заранее ..

1 ответ1

2

При передаче кода вы должны позаботиться о том, чтобы сделать это правильно - были некоторые недостатки.

Этот VBScript должен сделать:

set service = GetObject ("winmgmts:")

Function IsAppRunning(AppName)
    for Each Process in Service.Instancesof("Win32_Process")
        If UCase(Process.Name) = UCase(AppName) then
            IsAppRunning = True
            Exit function
        End If
    next
    IsAppRunning = False
End Function

AppName = "notepad.exe"

' initial test
If IsAppRunning(AppName) then
    Wscript.echo AppName & " running - waiting for it to exit"
else
    Wscript.echo AppName & " not running - exiting"
    Wscript.quit
End If

Do while IsAppRunning(AppName)
    Wscript.Sleep(1000) 'wait miliseconds
Loop

Wscript.echo AppName & " exited, do your task"

' Reaching here AppName had been running - but no more.
'
' open or run "run.bat"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .