2010-08-04 94 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的各个部分,还可以确保您再也无法获得它。