【发布时间】:2009-12-31 01:47:23
【问题描述】:
有什么方法可以保护我的 Delphi 应用程序不被 Windows 任务管理器(或其他类似 Process Explorer)杀死?
我认为 Windows 消息可以做到这一点(通过挂钩并拦截 TerminateProcess 消息)。
我想要一个这种保护的例子。卡巴斯基反病毒套件是这样的;我们无法在任务管理器中结束他们的进程。
【问题讨论】:
-
你有什么正当理由这样做?
-
我建议一个替代方案:有一个显示正确关闭的状态标志,如果您在没有设置该关闭标志的情况下启动,请记录它(或更大)。然后有一个服务来监控你的进程并确保它正在运行。如果用户杀死它,只需重新启动它。这就是我们对用户可能会弄乱的“必须运行”的进程所做的事情。
-
我有一个建议:请不要这样做。
-
如果一个人想写一个病毒,然后在 StackOverflow 上寻求帮助,让它变得更糟糕怎么办。我们帮他还是不帮他?
-
那么这不是技术问题,而是社会/教育问题。解决方案是确保用户知道这是一个他们不应该杀死的合法进程。添加类似病毒的行为只会让精明的用户更加怀疑。
标签: windows delphi process messages taskmanager