Как завершить процесс с помощью Python и узнать ИД процесса
Есть необходимость в цикле запускать сторонний файл (в данном случае Telegram.exe), и после некоторых манипуляция завершить процесс. Вроде из самых простых способов - это kill()... но все это сделать можно если знаешь ИД процесса, но в данном случае он всегда разный, и мы не знаем его на момент закрытия..
Подскажите пожалуйста, как ИД вообще можно перехватить, или как по другому можно завершить нужный процесс
Ответы (1 шт):
Автор решения: DiMithras
→ Ссылка
Можно поставить 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)