2011-07-11 68 views
1

我試圖通過python腳本殺死外部運行的應用程序,如Windows Paint.mp3和類似程序。我打開程序os.startfile。任何想法我如何有效地關閉程序?我正在使用Windows 7機器。 我會很感激的幫助!謝謝!在Windows中,通過Python殺死應用程序

+0

似乎這個問題的最佳答案會做你在找什麼:http://stackoverflow.com/questions/5780425/run-external-program-in-a-loop-with-max-time-限制 –

+0

如果我不想通過子過程方法怎麼辦? – dawnoflife

回答

3

對於Python 2.7 os.kill適用於Windows的。您可以使用this recipe找到PID。

+0

這是行不通的。謝謝丹!雖然有點複雜... – dawnoflife

+0

不客氣。我同意它比我預期的更復雜。 –

0

POPEN會讓你殺死一個打開的過程,但不會提示保存文件等

p = subprocess.Popen(['notepad', 'tmp.txt']) 
#later 
p.kill() 
+0

我可以用'P.open'打開非.exe文件嗎? – dawnoflife

+0

我剛剛嘗試過,它看起來不像它:WindowsError:[錯誤193]%1不是有效的Win32應用程序 –

0

當您要求Windows啓動os.startfile()時,您無法獲得所創建進程的句柄。這是因爲底層ShellExecute()函數不會將句柄返回到創建的進程。我相信這是因爲並非所有操作實際上都會導致創建進程(例如使用進程內COM服務器或其他esoteria)。