Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows Delphi 7-防止用户在任务管理器中终止进程_Windows_Delphi_Process_Taskmanager - Fatal编程技术网

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

Windows Delphi 7-防止用户在任务管理器中终止进程,windows,delphi,process,taskmanager,Windows,Delphi,Process,Taskmanager,下面的代码可以防止通过Windows任务管理器终止应用程序: SetSecurityInfo(OpenProcess(PROCESS_ALL_ACCESS, False, GetCurrentProcessID), SE_KERNEL_OBJECT, DACL_SECURITY_INFORMATION, nil, nil, @ACL, nil); 问题是它只能在Windows7上工作。因此,我有两个问题: 您知道如何调整这段代码(或其他方法),使其也适用于XP和8吗 在阻止用户一次性终止

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

SetSecurityInfo(OpenProcess(PROCESS_ALL_ACCESS, False, GetCurrentProcessID),
  SE_KERNEL_OBJECT, DACL_SECURITY_INFORMATION, nil, nil, @ACL, nil);
问题是它只能在Windows7上工作。因此,我有两个问题:

  • 您知道如何调整这段代码(或其他方法),使其也适用于XP和8吗

  • 在阻止用户一次性终止进程后,我如何允许用户终止进程?我想包括这样一个选项(复选框):“防止用户杀死应用程序”,可以选中也可以不选中


顺便说一句,我没有创建任何类型的病毒、恶意软件、间谍软件等。

你不能,原因很好:即使你没有创建恶意软件,如果你有可能,恶意软件作者也有可能

而且,当一切都说了又做了,计算机的所有者就拥有了计算机,并对计算机的运行方式拥有最终决定权。据Windows团队的主要开发人员之一Raymond Chen说。如果您的软件试图立即获取该基本信息,那么无论您是否有意,计算机的所有者都会将您的软件视为恶意软件

你真的应该听听那些发表评论的人。人们做事没有理由。如果您的用户正在终止进程,那么问题不是“进程可以在不应该终止的时候终止”;问题是“你的过程正在做一些让人想杀死它的事情。”你有一个社会问题,而不是技术问题,经验表明,试图用技术手段解决社会问题总是让事情变得更糟


试着和你的用户交谈,弄清楚到底是什么让他们如此想扼杀你的流程,看看你是否能修复它,改善他们的体验。但不要试图让这个过程变得不可撼动。这是一场你不想参加的军备竞赛,因为最终你总会输。

为此使用服务。如果用户坚持要在他们头上杀死一个服务,那就这样吧。无法杀死的第三方程序/服务是恶意软件。如前所述,您试图解决错误的问题。问题不在于你如何阻止他们关闭你的软件——问题在于他们为什么要关闭你的软件——而是修复这个问题(这可能不是软件修复)。@Xepol,你是对的。也许我建议经理雇佣一位心理学家来试着理解为什么有些员工会停下工作来&#与我的同事交流……)也许做个集体治疗。。。顺便说一下,我应该参加……:)@帕鲁巴:不,也许你应该和那些用户谈谈,找出为什么你的软件在做他们非常不喜欢的事情,他们觉得有必要停止它,然后修复你的软件,让它不再这样做。大多数停止他们不积极使用的软件的用户这样做是因为这会给他们带来问题或行为不好。@Paruba嗯,我是巴西人,我的客户不会杀死我的应用程序。这毫无意义。也许你的应用程序正在做一些有害的事情。为什么客户会终止一个有用的应用程序?为什么他/她必须使用任务管理器?我知道很多软件,比如防病毒和安全应用程序,可以防止it进程被杀死。您需要了解,公司经理要求我添加此功能,并征得所有者同意。计算机属于公司,而不是雇员(用户)。不管怎样,我已经厌倦了和你争论。。。祝您有个美好的一天!您是否可以删除他们在windows中访问任务管理器的权限,这将解决您的问题,而无需使用代码,我假设可以使用windows用户权限工具完成此操作?@Shaun我可以在不使用任务管理器的情况下终止进程。另外,任务管理器还有其他用途。@Paruba我可以禁用我的AV软件。@Paruba你从这里的人那里得到了很好的建议。忽视它会给你带来危险,因为最终管理者会开始问,如果人们继续禁用它,软件的意义何在。找到根本原因,解决问题。否则你的经理会的。