目前在C#开发的Windows应用程序中,我正在禁用Task manager
并user switching option
设置以下注册表的值:
禁用任务管理器:
HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System\\DisableTaskMgr
值 1
禁用(隐藏)用户切换:
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\Software\Microsoft\Windows\CurrentVersion\Policies\System".:Win32Error(0,0)
后来我查了手动添加子项DisableTaskMgr
通过regedit
,我得到同样的消息Access is Denied
.
在应用程序清单文件我已经启用requestedExecutionLevel
设置:
.我也试过运行应用程序exe Run as Administrator
.
如果我在Administrators
组中添加该用户,则不会遇到任何问题.
那么,是否有任何替代启用/禁用任务管理器和隐藏用户切换可能是通过使用win32 API函数user32.dll
?或通过vc++
什么解决方案?
业务要求:
嗯,这是一个考试软件的应用程序,我们希望限制候选人使用任何其他应用程序(网络浏览器,文件浏览器等)以及在提供考试时终止该应用程序.所以我们从开始菜单选项以及ctrl + alt + del菜单(屏幕)中阻止了任务管理器,我们还想switch user
从ctrl + alt + del菜单中删除选项.