使用win32 API函数启用/禁用任务管理器,而不是使用Windows注册表

时间:2015-12-18 13:16:59

标签: c# .net windows visual-c++ taskmanager

目前在使用C#开发的Windows应用程序中,我通过设置以下注册表的值来禁用Task manageruser switching option

禁用任务管理器:

HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System\\DisableTaskMgr1

禁用(隐藏)用户切换:

HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System\\HideFastUserSwitching值1

但是在Windows 7计算机上测试此Windows应用程序时,Administrators组中没有登录用户遇到了访问权限问题,这里是例外文本:

  

12/16/2015 12:11:24 PM:访问注册表项   'HKEY_CURRENT_USER \软件\微软\的Windows \ CurrentVersion \政策\系统'   被拒绝。 :Win32Error(0,0)

稍后我检查了通过DisableTaskMgr手动添加子密钥regedit,我收到Access is Denied的相同消息。

在应用程序清单文件中,我通过设置requestedExecutionLevel启用了<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />。我还尝试通过Run as Administrator运行应用程序exe。

如果我在Administrators群组中添加该用户,则不会遇到任何问题。

那么,是否可以使用user32.dll中的win32 API函数来启用/禁用任务管理器并隐藏用户切换? 或通过vc++的任何解决方案?

业务要求:

嗯,这是一个考试软件的应用,我们希望限制考生使用任何其他应用程序(网络浏览器,文件浏览器等)以及在考试时杀死这个应用程序。所以我们从开始菜单选项以及ctrl + alt + del菜单(屏幕)中阻止了任务管理器,我们还想从ctrl + alt + del菜单中删除switch user选项。

1 个答案:

答案 0 :(得分:-1)

尝试使用此应用程序禁用taskmgr

Ultimate Windows Tweaker v2.2 for Windows 7