我可以從c或C++程序訪問任務管理器中的進程,如explorer.exe
嗎?在windows下殺死所有未列入白名單的進程
我正在編寫一個程序來結束那些流暢運行計算機所不需要的進程。所有必要過程的列表都保存在文本文件中。我的程序需要檢查這個列表中的進程,並與任務管理器的進程進行比較 - 如果進程不存在於文本文件中,那麼該進程應該結束。
我可以從c或C++程序訪問任務管理器中的進程,如explorer.exe
嗎?在windows下殺死所有未列入白名單的進程
我正在編寫一個程序來結束那些流暢運行計算機所不需要的進程。所有必要過程的列表都保存在文本文件中。我的程序需要檢查這個列表中的進程,並與任務管理器的進程進行比較 - 如果進程不存在於文本文件中,那麼該進程應該結束。
Just ShellExecute taskkill。輸入taskkill /?以cmd爲單位獲取更多信息。 它可以通過圖像名稱(例如notepad.exe)和PID(例如1337)來殺死。
將它與tasklist命令結合使用。
如果您不想使用簡單的批處理腳本(或PowerShell),但堅持要在C或C++中執行此操作,則應該使用管道來處理命令的輸出。
糟糕的做法,恕我直言。
你不應該殺死其他基於白名單的進程。 我認爲最好防止他們開始。 您可以使用sysinternals中的Autoruns來執行此操作。
系統服務怎麼樣?你是否只對用戶會話中的進程感興趣?
另一方面,你可以有你想殺死的進程的黑名單。
Windows爲halting processes提供了清晰的API。 首先你需要enumerate all running processes。
但是,除非您有足夠的理由這樣做,否則不鼓勵您強制停止無法啓動的進程。
這很簡單,也有在做的伎倆窗口兩個命令:
嘗試一下在cmd中的任務:
yourcommand/?
生成你想要的命令的幫助。
與你的標題有什麼關係? –
抱歉,標題是針對其他問題的錯誤 – GhostCoder
整個操作系統的白名單似乎是一個非常糟糕的決定... – UmNyobe