无法使用C++程序禁用设备管理器
Can not disable Device Manager using a C++ program
我想从控制面板禁用设备管理器编辑注册表值。我可以在C#中完成,但我想在C++中完成,而不使用任何.NET框架。我已经成功地用C++更改了我的处理器名称。但是当我想禁用任务管理器时,我遇到了一个问题。这是我的密码。
HKEY hKey;
RegOpenKeyEx(HKEY_LOCAL_MACHINE,
"HARDWARE\DESCRIPTION\System\CentralProcessor\0",
0,
KEY_SET_VALUE,
&hKey);
RegSetValueEx(hKey, REGNAME_TO_WRITE, 0, REG_SZ,
(const unsigned char *)"ProcessorNameString",
strlen("ProcessorNameString"));
//RegCloseKey(hKey);
// The problem begins here
RegOpenKeyEx( HKEY_LOCAL_MACHINE,
"Software\Policies\MicrosoftMMC\{74246bfc-4c96-11d0-abef-0020af6b0b7a}\",
0,
KEY_SET_VALUE,
&hKey );
RegSetValueEx( hKey,"Restrict_Run",0,REG_SZ,
(const unsigned char *)"1",
strlen("1") );
RegCloseKey(hKey);
return 0;
}
您应该禁用WOW64注册表重定向,否则您的程序可能会更改WOW6432Node而不是HKEY_LOCAL_MACHINE。
请参阅禁用x64平台上注册表项的注册表重定向
Viola,我得到了解决方案。解决方案如下:
DWORD dwVal = 1;
HKEY hKey = HKEY_CURRENT_USER;
RegOpenKeyEx(HKEY_CURRENT_USER, "Software\Policies\Microsoft\MMC\{74246bfc-4c96-11d0-abef-0020af6b0b7a}\", 0, KEY_ALL_ACCESS, &hKey);
RegSetValueEx (hKey, "Restrict_Run", 0, REG_DWORD, (LPBYTE)&dwVal, sizeof(DWORD));
RegCloseKey(hKey);
相关文章:
- 如何维护资源管理器项目视图中当前可见的项目列表
- 使用"Task"函数指针队列定义作业管理器
- 实现动态插件管理器
- 编译器资源管理器和 GCC 具有不同的输出
- Windows 资源管理器中的图标在使用 resource.rc 时显示 2 个不同的图标
- C++ 事件管理器的回调,使用 std::function 和 std:bind 以及派生类作为参数
- Linux 包管理器如何处理 C++20 个模块?
- 编译器资源管理器(godbolt)如何安全地运行代码?
- 创建跨平台 C++ 触摸管理器.在 c++ 中传递 Objective-c 对象涉及代码
- 从 GUI 文件资源管理器执行程序,并且不生成终端
- 自定义内存管理器在发布模式下工作正常,但在调试模式下则不然
- 无法删除EXE崩溃后,即使进程未显示在任务管理器中
- 任务管理器 - C/C++ 应用程序 - 分配的地址空间与已用内存
- 如何以编程方式获取任务管理器进程CPU使用率(不是PerfMon API)
- 管理器类和对象类之间的通信
- WinDBG适用于从Visual Studio 2015保存的转储,但不适用于任务管理器。显示异常代码"not found"
- 在C++中将系统与ECS(实体组件系统)管理器分离
- 是否可以检索与柯南包管理器一起打包的库的源代码,以便在其中进行调试?
- 模板对象管理器,参数不正确
- MPI 应用程序无法连接到 SMPD 管理器 (空):55846 错误 1722