目前在用 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: Access to the registry key 'HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System' is denied. :Win32Error(0,0)
后来我检查手动添加子键DisableTaskMgr
通过regedit
, 我收到相同的消息 Access is Denied
.
在应用程序 list 文件中,我启用了 requestedExecutionLevel
通过设置:<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
.我还尝试通过 Run as Administrator
运行应用程序 exe .
如果我在 Administrators
中添加该用户组则没有问题。
因此,是否有任何替代方法来启用/禁用任务管理器和隐藏用户切换可能是通过使用来自 user32.dll
的 win32 API 函数?
或通过 vc++
的任何解决方案?
业务需求:
好吧,这是一个考试软件应用程序,我们希望限制考生使用任何其他应用程序(网络浏览器、文件浏览器等),并在考试时关闭该应用程序。所以我们从开始菜单选项以及 ctrl+alt+del 菜单(屏幕)中阻止了任务管理器,我们还想删除 switch user
ctrl+alt+del 菜单中的选项。
最佳答案
尝试使用这个应用程序来禁用 taskmgr
关于c# - 使用 win32 API 函数启用/禁用任务管理器,而不是通过 Windows 注册表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34356615/