Delphi 7 - 在任务管理器中防止用户杀死进程

时间:2015-04-24 16:39:07

标签: windows delphi process taskmanager

此代码可以防止通过Windows任务管理器终止应用程序:

SetSecurityInfo(OpenProcess(PROCESS_ALL_ACCESS, False, GetCurrentProcessID),
  SE_KERNEL_OBJECT, DACL_SECURITY_INFORMATION, nil, nil, @ACL, nil);

问题仅适用于Windows 7.因此,我有两个问题:

  • 您是否知道如何调整此代码(或其他方法),这些代码也适用于XP和8?

  • 如何阻止用户在阻止他们执行此操作后终止该进程?我想在这里添加一个选项(复选框):“防止用户杀死应用程序”,可以检查或不检查。

顺便说一下,我不会创建任何类型的病毒,恶意软件,间谍软件等。

1 个答案:

答案 0 :(得分:3)

您无法理解:即使您没有创建恶意软件,如果有可能,恶意软件作者也可能会这样做。 < / p>

此外,当完成所有操作后,计算机的所有者拥有计算机,并对其运行方式有最终决定权。 This is a deliberate design decision in Windows,据Windows团队的主要开发人员之一Raymond Chen说。如果您的软件试图立即采用该基础,那么计算机的所有者会将您的软件视为恶意软件,无论您是否打算使用它。

你真的应该听发表评论的人。人们没有理由不做事。如果您的用户正在终止这个过程,那么问题就不在于,当这个过程不应该被杀死时,该过程就会被杀死。问题是&#34;你的过程正在做一些让人们想要杀死它的东西。&#34;你有一个社会问题,而不是一个技术问题,经验表明,试图通过技术手段总是来解决社会问题会让事情变得更糟。

尝试与您的用户交谈并弄清楚他们是否会让他们想要彻底杀死您的流程,看看您是否可以修复它们并改善他们的体验。但是,不要试图让这个过程不可杀戮。这是你不想进入的军备竞赛,因为最终你总会失败。