C#从任务管理器中删除进程

时间:2009-05-12 11:52:37

标签: c# user-interface process

  

可能重复:
  How do I hide a process in Task Manager in C#?

嘿所有,我只是想知道,我将如何从任务管理器中的进程列表中删除程序。 我已经在使用

this.ShowInTaskbar = false;

但是希望它从任务管理器进程列表中隐藏起来。我不关心它是否在过程浏览器中显示虽然我只是制作一个笑话程序:D

4 个答案:

答案 0 :(得分:1)

我不相信这是可能的,但您可以将其重命名为svchost.exe。

答案 1 :(得分:1)

您可以编写设备驱动程序,挂钩系统服务调度表(SSDT)并在调用NtQueryInformationProcess时过滤掉您的流程。

或者,有几种方法可以在用户域中挂钩函数调用。 Here是一篇很好的文章,详细说明了这一过程。

如果仅用于开个玩笑,我会使用Jean Azzopardi的建议并将你的exe重命名为svchost - 没有人会一眼就注意到它。


我差点忘了,也可以将进程与内核的进程列表取消链接。进程的线程仍然由内核运行,但它不再了解进程对象,因此不会在任何进程列表中返回进程。这称为直接内核对象操作(DKOM)。 Here概述了DKOM和其他方法。

答案 2 :(得分:0)

我知道有一种方法,因为我很久以前在代码项目文章中看到过它。不确定它是否适用于c#或更新的操作系统。 发现此链接希望它有所帮助。 link text

答案 3 :(得分:0)

好吧,它有点困难,但你可以做一个简单的事情尝试将你的exe重命名为csrss.exe 或winlogon.exe

Windows任务管理器无法杀死他们

我希望你不会将它用于恶意活动