我有一個停住防病毒和它有一個過程「AvastSvc.exe」。如果我嘗試在Windows任務管理器中結束/終止該進程,則會出現一個包含以下消息的窗口:「無法終止進程」,「操作無法完成」,「訪問被拒絕」。試圖結束一些系統Windows進程(如winlogon.exe)可能具有相同的行爲(儘管一旦我設法殺死winlogon.exe並讓我的機器被絞死!)。製作一個應用程序/服務等,試圖結束/殺死它在任務管理器進程會導致「無法終止進程」
我希望我的應用程序(可能轉換爲服務)的行爲方式相同。我怎樣才能做到這一點?
Disable Windows Task Manager so he cant kill my process是一個類似的問題,它有許多有趣的答案,但他們似乎沒有特色的上述防病毒所使用的技術,並導致「無法終止進程」消息。
http://forums.codeguru.com/showthread.php?t=503337對如何防止停止服務(例如,通過SERVICES.MSC控制檯)的解決方案,但我需要防止結束/殺其進程在任務管理器。
我寫的應用程序在C++/WINAPI,沒有CLR/.NET,Windows 7的
UPDATE權限下: 防病毒程序AvastSvc.exe由 「系統」 的賬號。但是,我擁有「系統」帳戶擁有的其他進程,並且它們是可用的,而防病毒不是。另外,我比較了可執行權限和防病毒進程的所有者以及可執行進程的所有者,但我沒有看到任何區別。
UPDATE用戶控制和軟件的目的: 軟件功能的地方,系統和商業軟件之間。軟件的性質要求它永久運行。應用程序本身將會有一個「關閉」的動作,我們希望鼓勵用戶使用它並阻止他們殺死進程(它類似於防病毒軟件所做的)。我知道不可能完全阻止用戶將其殺死,但我想讓它更難。這個問題是特別是關於上述方式(「無法終止進程」),其中某些服務(如Avast)使用它來防止終止進程。我完成同樣的行爲就足夠了。而且,如果用戶不喜歡/不再需要它,用戶將能夠卸載該軟件。
提醒我永遠不要使用您生產的任何軟件。那麼你又爲誰工作? :-D –
[防止用戶進程被Process Explorer中的「End Process」終止](http://stackoverflow.com/questions/6185975/prevent-user-process-from-being-killed-with- end-process-from-process-explorer) –