我想尝试创建一个这样的多监视程序。
http://www.docs.kr/m/post/entry/Download-Shock-4Way-en
所以这基本上提供了4个可以交换的虚拟屏幕。我相信,只要你交换屏幕,程序就会隐藏每个屏幕的所有进程。
因此,当您切换到另一个屏幕时,它会隐藏原始屏幕上的进程,然后显示新屏幕中的进程。
我研究了如何隐藏进程并让它再次出现,但我不知道如何调用所有应用程序来隐藏它们。
我尝试使用Process.GetProcesses
方法获取要隐藏的应用程序数组,但这会带来所有进程,例如 svchost.exe , dvm.exe 以及在后台运行的所有进程。
例如,如果我打开了Chrome,当我拨打Process.GetProcesses
时,它不仅会调用 chrome.exe ,还会调用在后台运行的所有其他进程。< / p>
任何人都可以推荐一种只调用应用程序可见的进程的好方法吗?
PS。就像我说的那样,我不会让这个程序伤害任何人。
答案 0 :(得分:0)
您无法完全隐藏最终用户正在运行的进程。而且你真的不应该开发软件,希望你可以。
考虑一下:你是一名管理员,有一个流程消耗了大量资源但是你无法访问它来杀死它,因为开发人员认为这是不可能的。那将是一个巨大的问题。
即使是最不体面的操作系统也应始终为最终用户提供显示正在运行的进程的可能性。总是
修改强>
我相信在Windows XP中可以截取并更改活动进程列表。你必须编写一个作为设备驱动程序的内核模式rootkit(我不太熟悉这个过程)。
当然,这是一种黑客行为,也是恶意软件给用户带来许多麻烦的一种方式。改进的Vista内核使得它变得更加困难,在这个版本和后续版本的Windows上也很难做到这一点。
所以再一次,没有任何支持的方式来做你想要的。即使有,我也不认为它可以在.NET运行时的范围内完成。
答案 1 :(得分:0)
我相信,只要你交换屏幕,程序就会隐藏每个屏幕的所有进程。
不,这些程序可以通过创建其他桌面来实现。 桌面是Windows对象。我不完全了解它的功能,但它似乎是一个独立的窗口空间。一次只能看到一个桌面。请参阅CreateDesktop。
隐藏窗户非常脆弱。您将打破其他程序所做的假设。