如何防止在桌面上启动任务管理器?

发布于 2024-08-11 22:23:09 字数 391 浏览 2 评论 0原文

我正在使用 win32 API 在 Windows XP/Vista 和 7 中创建一个新桌面。 这更像是拥有一个安全的桌面,我不想让任何其他应用程序在该桌面上执行。

好吧,在 Windows XP 中,如果我按 strg+shift+Esc 或 strg+alt+ent,在我创建的桌面中,我在桌面上看不到任务管理器,而是在默认桌面上看到任务管理器。

好吧,没关系,但在 Windows Vista 中,执行同样的操作,我会在桌面上看到任务管理器,用户可以使用“文件”->“新任务”(运行...)菜单启动另一个应用程序。

这是我的问题,阻止任务管理器显示在我创建的桌面中甚至阻止启动它的最佳方法是什么?

1)使用注册表项, 2)捕获击键? 3)还有什么???

提前致谢! 戈洛尔

I am creating a new Desktop in Windows XP/Vista and 7 using win32 API.
This is more like having a secure Desktop and I don't want let any other application to be executed in that Desktop.

Well, in Windows XP if I press strg+shift+Esc or strg+alt+ent, in the Desktop which I created, I don't see the task manger on my Desktop but instead on the Default Desktop.

Well, that's ok, but in Windows Vista, doing the same I get the task manager in my Desktop where the user can start another application using File->New task (Run...) menu.

Here is my question, what is the best way to prevent task manager to be displayed in the desktop which I created or even prevent starting it?

1) using the registry key,
2) capturing the key strokes?
3) what else???

Thanks in advance!
Gohlool

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

旧瑾黎汐 2024-08-18 22:23:09

组策略是您的朋友。 以下是禁用它的方法

Group Policy is your friend. Here's how to disable it.

伴我老 2024-08-18 22:23:09

我假设您正在调用 CreateDesktop,如果是这样,您应该能够使用仅允许访问您的程序的安全描述符锁定该桌面

I assume you are calling CreateDesktop, if so, you should be able to lock down that desktop with a security descriptor that only allows access to your program

狼亦尘 2024-08-18 22:23:09

这可能不是最好的解决方案,但您始终可以监视任务管理器并关闭它

foreach (Process clsProcess in Process.GetProcesses()) {
        if (clsProcess.ProcessName.StartsWith("taskmgr"))
        {
            clsProcess.Kill();
            return true;
        }
    }

代码是 C#

This probably isn't the best solution, but you could always monitor for task manager and close it

foreach (Process clsProcess in Process.GetProcesses()) {
        if (clsProcess.ProcessName.StartsWith("taskmgr"))
        {
            clsProcess.Kill();
            return true;
        }
    }

Code is in C#

執念 2024-08-18 22:23:09

将taskman.exe 重命名为其他名称。

rename taskman.exe to somthing else.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文