【问题标题】:Hiding a process from Task manager [duplicate]从任务管理器隐藏进程[重复]
【发布时间】:2014-04-03 18:08:45
【问题描述】:

我们正在为一家托管公司开发软件。该软件需要根据管理员是否在场来锁定/解锁计算机。

我们正在使用 RFID。因此,只要软件检测到管理员的 RFID,系统就会保持解锁状态。管理员离开场所后,该软件会自动锁定计算机。直到管理员再次进入该场所。

让它工作的主要问题是,应用程序需要一直运行,没有人应该能够关闭应用程序。

即使它显示在任务管理器中,主要目的是没有人应该能够关闭应用程序。

【问题讨论】:

  • 让它成为服务,它不会出现在任务管理器中。
  • @atoMerz 服务确实出现了
  • @SriramSakthivel 确实如此,但如果没有足够的权限,用户仍然无法杀死它,这是这里的真正目标。
  • @SriramSakthivel 如果您单击“显示所有用户的进程”按钮/复选框,他们会这样做。它需要管理权限。当然,我认为这仅适用于启用了 UAC 的操作系统。
  • 这是一场猫捉老鼠的游戏;在 C# 中没有办法做到这一点;但您可以尝试使用 Win32 API 在 C++ 中执行此操作。 blogs.msdn.com/b/oldnewthing/archive/2004/02/16/73780.aspx

标签: c# .net windows taskmanager


【解决方案1】:

简短的回答是:您无法阻止正在运行的进程被高级用户停止。充其量你可以让它变得困难,但绝不是不可能的。

此外,您永远不应该设计一个软件认为它永远不会被中断。如果这是一个关键过程,那么您必须以某种方式对其进行设计,以便在它突然停止时可以恢复。毕竟,无论你给它包裹多少保护,它无论如何都无法抵抗停电。 :)

【讨论】:

  • -1 例如,去尝试杀死“avast”!即使是管理员也无法杀死它。
  • @SriramSakthivel 我不知道avast,但我确信它可以停止。
  • @SriramSakthivel Avast 不是用 C# 编写的。
  • 不,伙计,你会得到access denied message
  • @SriramSakthivel 尝试通过任务管理器终止进程时收到拒绝访问消息的事实并不能使进程防终止,这基本上是 OP 所要求的。如果一个较低级别的进程设法防止自己被 TM 杀死,那么另一个较低级别的进程可能只是能够做到。所以我的回答是:你不能阻止一个进程被杀死,无论是来自 TM 还是其他任何地方。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多