2011-02-01 96 views
-1

過程中,我如何能殺死只用API函數Windows上的過程叫什麼名字?的名字來殺死

+6

什麼操作系統?什麼平臺? – 0xAX 2011-02-01 12:37:30

回答

1

如果殺了你的意思是極端的偏見終止,孤單總是了TerminateProcess。我建議不要使用它,如果你能找到另一種方式(如張貼WM_CLOSE到主窗口),因爲加載的DLL沒有得到適當的,當你調用了TerminateProcess卸載,所以使用的資源可能無法得到釋放。

真正的問題是如何從一個名字到一個進程ID,這通常涉及

EnumProcesses()
EnumProcessModules()
GetModuleFileNameEx()
GetModuleBaseName()

和比較由此產生的基本模塊名稱與您正在查找的內容相對應。但是可能有多個模塊名稱在系統上執行。如何區分這種情況下的實例?

1
​​

http://en.wikipedia.org/wiki/Killall(注意,這僅適用於Linux,因爲你沒有指定你的OS)

+0

請注意,這將使用名稱`yourprocess`來殺死所有進程。如果你有這個過程的多個實例,那可能是一個問題。 – 2011-02-01 12:57:29

0

在CMD窗口中,你可以使用taskkill /F /im cmd.exe殺死所有的cmd.exe程序。

/T標誌告訴taskkill強制終止進程,而 taskkill /im cmd.exe通過發送kill信號正常關閉它。

更多的taskkill信息可以發現here

另一個偉大的工具,終止進程是wmic