2010-05-19 68 views
0

我发现this code用于在Windows XP中禁用任务管理器。它的工作原理:)Delphi:在Windows 7中禁用TaskManager

但它也能在Windows 7中工作吗?注册表路径是相同的,我已经检查过了。但也许有一些限制!?

提前致谢!

+0

对于我们谁不记得XP非常好:你能描述代码“禁用”“任务管理器”的代码是什么?我刚刚尝试了W7 Home Premium上的代码,并且看不到代码所做的任何更改。而且,实际上,如果单个应用程序可以执行此操作,即使它以提升的权限运行,也是非常愚蠢的。 – 2010-05-19 20:52:28

+1

该代码设置了一个注册表项,该项禁用了安全对话框屏幕上的按钮和任务栏上下文菜单中的菜单命令。如果直接运行taskmgr.exe,它会显示一个对话框,告诉您管理员已禁用它。您可以将其设置为KHCU或HKLM。你不需要特殊的权限就可以在HKCU中禁用它,这也意味着你不需要特殊的权限来重新启用它,所以它并不是真的那么显着。 – 2010-05-19 22:01:36

+0

是的,这正是它所做的。如果您通过Ctrl + Alt + Del调用任务管理器,则会出现“由管理员禁用”对话框。 – caw 2010-05-21 14:54:09

回答

3

默认情况下,自Windows 2000以来,以下按键对标准用户具有“只读”访问权限(请参阅here)。

  • HKLM \ SOFTWARE \政策
  • HKLM \ SOFTWARE \微软\的Windows \ CurrentVersion \政策
  • HKCU \软件\政策
  • HKCU \软件\微软\的Windows \ CurrentVersion \政策

因此,您的应用程序需要具有管理权限才能写入这些密钥。

+0

谢谢。我的问题是如果它也可以在Windows 7中运行。那么是否可以用管理权限更改Windows 7中的这些密钥?还是他们阻止Windows 7中这些密钥的访问? – caw 2010-05-21 14:55:07

+0

@ marco92w:如果钥匙存在,我认为他们可以通过管理员权限进行修改。我会在今晚晚些时候尝试。 – 2010-05-21 15:17:24

+1

@ marco92w - 是的,我使用“DisableTaskMgr”在W7上测试了一个快速应用程序,如果“以管理员身份运行”,TRegistry成功写入密钥并且值和任务管理器被禁用。 – 2010-05-21 17:40:22

1

是的,它也适用于Windows 7。我用提升的权限运行程序(Windows 7家庭高级版),之后任务管理器不再可用。

但是,作为一个旁注,我不得不说的是,代码

case YesNo of 
    False: 
    begin 
     WriteInteger('DisableTaskMgr',1) ; 
    end; 
    True: 
    begin 
     WriteInteger('DisableTaskMgr',0) ; 
    end; 
end; 

是相当可怕的。首先,根本不需要beginend部件,因为命令WriteInteger...是“单线”。其次,为什么不写出not YesNo的价值?

人真正应该写的代码

WriteInteger('DisableTaskMgr', byte(not YesNo)); 

是不是更具有可读性和简单?

+0

非常感谢Andreas!多么伟大的优化! 10行代码块制作成简单的1线... – caw 2010-05-22 18:22:15