Я пытаюсь убить внешние запущенные приложения, такие как Windows Paint, .mp3 и подобные программы через скрипт python.
Я открываю программу через os.startfile
. Любые идеи, как я могу эффективно закрыть программы? Я использую машину Windows 7. Я был бы признателен за помощь! Благодарю!
Начиная с Python 2.7 os.kill работает в Windows. Вы можете найти PID, используя этот рецепт.
Когда вы попросите Windows запустить что-то с os.startfile()
, вы не получите дескриптор созданного процесса. Это связано с тем, что основная функция ShellExecute()
не возвращает дескриптор созданного процесса. Я считаю, что это связано с тем, что не все действия фактически приводят к созданию процесса вообще (например, с помощью COM-серверов в процессе или других эзотерий).
Popen позволит вам убить открытый процесс, но не будет запрашивать сохранение файлов и т.д.
p = subprocess.Popen(['notepad', 'tmp.txt'])
#later
p.kill()
P.open
?