2010-08-04 92 views
4

如何捕獲windows taskkill命令以防止它?C#catch kill命令

+9

爲了什麼目的?這聽起來像你可能正在構建我不希望在我的計算機上的東西,所以如果你想讓人們幫助你,你應該給一些背景知識。 – Guffa 2010-08-04 09:10:33

+0

總是認爲最糟糕的是一種相當壞的習慣。 – MBZ 2010-08-04 09:43:55

回答

10

不能防止您的過程中被殺害。保持程序活着的唯一方法是讓第二個看門狗應用程序不斷彙集該進程以確保它正在運行。

所以,你有兩個應用程序; AppA(主)和AppB(看門狗)。

AppA檢查AppB是否正在運行。如果不是 ,則AppA開始AppB

AppB檢查AppA運行。如果 不是,AppB開始AppA

但是這通常是一個惡意工藝設計,所以我希望你沒有做任何不幸。

你可以看到消息隊列中的下列事件時結束進程點:

WM_CLOSE // UI應用

CTRL_CLOSE_EVENT // 控制檯應用程序

但如果您的應用程序沒有及時關閉,那麼kill命令將被髮送,無法捕獲。

1

我很確定這是不可能的,否則單個應用程序可能會阻止窗口關閉。即使這個過程被掛起,在任務管理器中終止它也會起作用。如果可能的話,蘋果電腦軟件等可能會用到它 - 它們不僅可以控制PC的各個部分,還可以確保您再也無法獲得它。