Список процессов в Windows

Писал я как-то один QA тест, и нужно мне было понять — выполнятся ли сейчас определенный процесс или нет, и если да, то с какой командной строкой. Естественно, нужно и для UNIX и для Windows.

В UNIX в порядке вещей просто вызвать команду ps через popen() и распарсить текстовый вывод. Переносимо и надежно, так как для всех UNIXов ps всегда существует, и на этот факт можно положиться.

Для Windows же все оказалось чуть сложнее. Известная утилита pslist не является стандартной, и полагаться на нее опасно. Возиться с Windows API тоже не хотелось.

Я нашел вот такой способ. Через _popen() (аналог UNIXового popen()) можно вызвать вот такую команду:

WMIC PROCESS get Caption,Commandline,Processid

Получаем название процесса, командную строку и идентификатор процесса.

Конечно, не так задорно, как через ps, но зато стандартно.


Оригинальный пост | Disclaimer

Комментарии