Как получить PID последнего запущенного процесса в Windows с помощью WScript.Shell или аналогичного?
Я знаю, как запустить процесс и получить его PID:
Set oExec = WshShell.Exec( program )
Set pid = oExec.ProcessID
Теперь проблема в том, что программа является другим пакетом (или может быть VBScript). Пакет запускает реальную программу, PID которой я хотел бы получить.
В Linux (скрипт оболочки) это сделать очень просто.pid=$!
Но что я могу сделать в Windows?
решение1
Я думаю, что в Windows нет эквивалента $!.
Если вы хотите получить PID третьего процесса, вы можете выполнить поиск с помощью WMI. Пример этого можно найти здесьздесь(просто поиск и отображение информации) илиздесь(поиск и завершение процесса).
Если исполняемый файл третьего имени неизвестен, вы можете использоватьОбъект работыкоторый группирует несколько процессов в один объект. И вы можете легко убить их все сразу с помощьюTerminateJobObject.
ВидетьМСДНдля быстрого обзора илиэтот вопрос на StackOverflow.
Однако я не знаю, можно ли использовать эти методы из VBScript.