Как завершить процесс с помощью Python и узнать ИД процесса

Рейтинг: 2Ответов: 1Опубликовано: 14.01.2023

Есть необходимость в цикле запускать сторонний файл (в данном случае Telegram.exe), и после некоторых манипуляция завершить процесс. Вроде из самых простых способов - это kill()... но все это сделать можно если знаешь ИД процесса, но в данном случае он всегда разный, и мы не знаем его на момент закрытия..

Подскажите пожалуйста, как ИД вообще можно перехватить, или как по другому можно завершить нужный процесс

Ответы

▲ 1Принят

Можно поставить wmi (всего 28 kb) и получить список всех процессов в Windows, оттуда и брать ID, который необходимо убить с kill().

pip install wmi
import wmi
f = wmi.WMI()

for process in f.Win32_Process():
    if process.Name == 'Telegram.exe':
        print(process.ProcessId)

Чтобы быстрее работало, не идём по всем процессам, а делаем фильтр средствами библиотеки. Отрабатывает за 86ms вместо 5s:

for process in f.Win32_Process(name = 'Telegram.exe'):
    print(process.ProcessId)