3

Как получить на Windows PID последнего запущенного процесса с использованием WScript.Оболочка или подобное?

Я знаю, как запустить процесс и получить его PID:

Set oExec = WshShell.Exec( program )
Set pid = oExec.ProcessID

Теперь проблема в том, что программа представляет собой другой пакет (или может быть VBScript). Пакет запускает реальную программу, которую я хотел бы получить PID.

В Linux (сценарий оболочки) это очень легко сделать. просто pid=$!

Но что я могу сделать на Windows?

1 ответ1

3

Я думаю, что нет эквивалента в $! В винде.

Если вы хотите получить PID третьего процесса, вы можете найти его с помощью WMI. Пример этого может быть найден здесь (просто поиск и отображение информации) или здесь (поиск и уничтожение процесса).

Если исполняемый файл третьего имени неизвестен, вы можете использовать объект Job, который группирует несколько процессов в один объект. И вы можете легко убить их всех сразу с помощью TerminateJobObject.

См. MSDN для краткого обзора или этого вопроса о StackOverflow.

Однако я не знаю, можно ли использовать эти методы из VBScript.

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