从任务管理器中隐藏自定义应用程序
Posted
技术标签:
【中文标题】从任务管理器中隐藏自定义应用程序【英文标题】:Hide Custom Applications from Task Manager 【发布时间】:2014-04-02 13:27:52 【问题描述】:我想尝试创建一个这样的多监视器程序。
http://www.docs.kr/m/post/entry/Download-Shock-4Way-en
所以这基本上提供了 4 个可以交换的虚拟屏幕。我相信该程序的功能是在您切换屏幕时隐藏每个屏幕的所有进程。
因此,当您切换到另一个屏幕时,它会隐藏原始屏幕中的进程,然后显示新屏幕中的进程。
我想出了如何隐藏一个进程并让它再次显示,但是我不知道如何调用所有应用程序来隐藏它们。
我尝试使用 Process.GetProcesses
方法来隐藏一系列应用程序,但这会带来所有进程,如 svchost.exe、dvm.exe 和所有那些在后台运行的进程。
例如,如果我打开 Chrome,当我调用 Process.GetProcesses
时,它不仅会调用 chrome.exe,还会调用所有其他在后台运行的进程。
谁能推荐一种只调用可见的应用程序进程的好方法?
PS。就像我说的,我制作这个程序不是为了伤害任何人。
【问题讨论】:
您的意思可能是“窗口管理器”,而不是“任务管理器”。询问如何在任务管理器中隐藏内容可能会让人们指责您编写恶意软件或病毒。 哦,我不知道它到底叫什么名字,所以我只是公然称它为任务管理器。谢谢 @D_Pain 我们很清楚:你说的是这个,对吧? images.pcworld.com/images/article/2011/04/… 是的,这就是我所说的。 【参考方案1】:您无法对最终用户完全隐藏正在运行的进程。而且您真的不应该希望自己能够开发软件。
想一想:您是管理员,有一个进程正在消耗大量资源,但您无法访问它来杀死它,因为开发人员让这变得不可能。那将是一个大问题。
即使是最不体面的操作系统也应该始终为最终用户提供显示正在运行的进程的可能性。总是。
编辑:
我相信早在 Windows XP 中就可以拦截和更改活动进程列表。为此,您必须编写一个作为设备驱动程序呈现的内核模式 rootkit(我对这个过程不太熟悉)。
当然,这是一种黑客攻击,也是恶意软件给用户带来很多麻烦的一种方式。改进的 Vista 内核使得在这个版本和后续版本的 Windows 上做同样的事情变得更加困难。
同样,没有支持的方式来做你想做的事。即使有,我也不认为它可以在 .NET 运行时的边界内完成。
【讨论】:
我的意思是即使您可以从任务管理器应用程序选项卡中隐藏它,您仍然可以从进程选项卡中访问它。另外,我打算再添加一个函数来显示隐藏的进程。 @D_Pain 恐怕答案还是一样。充其量,您的应用程序中可以有多个线程充当“隐藏”进程,但应用程序进程本身仍会出现。你无法控制它。 嗯......我想知道那个程序是如何工作的......谢谢你的帮助:) @D_Pain 我相信它可以在比纯 .NET 所允许的低得多的操作系统级别上工作。 如果您尝试针对 Windows XP 以上的 64 位计算机,请忘记它,您可能会在网上找到一些旧的蹩脚源可能完成这项工作的唯一解决方案,但请注意,您无法真正从进程列表中删除您的进程,只有 rootkit 才能做到这一点,尽管我过去看到的许多代码都有故障,有时甚至可能无法正常工作。我在说 【参考方案2】:我相信程序的功能是在您切换屏幕时隐藏每个屏幕的所有进程。
不,这些程序通过创建额外的桌面来工作。 desktop 是一个 Windows 对象。我不完全了解它的功能,但它似乎是一个独立的窗口空间。一次只能看到一个桌面。见CreateDesktop。
隐藏的窗户非常脆弱。您将打破其他程序所做的假设。
【讨论】:
以上是关于从任务管理器中隐藏自定义应用程序的主要内容,如果未能解决你的问题,请参考以下文章