我正在用c ++开发一个应用程序,用户可以从该应用程序中禁用任务管理器(以及更多功能)。 这是我在visual c ++中的表现:
HKEY regHandle;
DWORD dwValue = 1;
BYTE* data = (BYTE*)&dwValue;
RegCreateKeyEx(HKEY_CURRENT_USER,"Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System", 0, NULL, NULL, KEY_WRITE | KEY_WOW64_32KEY,NULL , ®Handle ,NULL );
RegSetValueEx(regHandle,"DisableTaskmgr",0, REG_DWORD,data ,sizeof(DWORD));
在管理员帐户中运行良好。但在有限的用户帐户和来宾帐户中,它不起作用。它试图将UAC级别更改为管理权限/最高可用性。两者都没用。我还检查了是否可以通过将reg值写入HKEY_LOCAL_MACHINE
来实现。可悲的是,这也失败了。
我用Google搜索并搜索了stackoverflow,但没有找到解决方案。手动编辑组策略/注册表根本不是一个解决方案,我需要在应用程序内部和需要时进行编写。在此先感谢您的帮助。
答案 0 :(得分:2)
我认为这是因为您正在通过注册表修改组策略选项:
但该集团政策尚未生效。 Microsoft says you have to reboot.
可能强制进行组策略更新
gpupdate / force
会使它生效。
这是安装程序要执行的操作,然后提醒用户必须在安装完成之前重新启动计算机。或者,也许,因为它只是HKCurrentUser,注销和登录将起作用。