我需要创建一个企业级活动监视器进程,其中用户不应该使用任务管理器或其他方法终止。也许它应该是一个隐藏的过程。这可能吗?有没有解决方法?我更喜欢使用C#
然后使用C++
(使用Visual C ++编译器)。
非常感谢
答案 0 :(得分:6)
相关:
Hide a C# program from the task manager?
简短的回答是:不,你不能(合法地)将它隐藏在任务管理器中,除非你用Windows服务包装它。有多种方法可以阻止您的申请结束。
答案 1 :(得分:2)
关于“我如何阻止用户做X”的主题,答案是安全性。如果您希望用户拥有对其计算机的完全访问权限,则无法限制他们。如果要限制用户,请相应地更改安全策略。
“但是我的员工不会喜欢我们不相信他们的完全管理员权利的想法” - 老实说,你不相信他们;这就是你实现这个的原因。你不希望员工欺骗你,他们也应该期待你。
除了其他人所说的,一个更简单的解决方案就是创建两个进程 - 一个REAL进程和一个“sentinel”。基本上,每隔100ms左右,只需快速检查一下,看看其他过程是否健康,如果不是,请启动它。这很容易解决(例如,使用kill.exe
),但考虑到您的用户是完全管理员,其他所有解决方案也是如此。
真正阻止他们杀死您的应用的合法解决方案是通过典型的Windows安全限制访问 - 限制用户访问该进程。不是通过廉价的隐藏和混淆。