【问题标题】:Can not disable Device Manager using a C++ program无法使用 C++ 程序禁用设备管理器
【发布时间】:2012-03-22 18:37:12
【问题描述】:

我想从我的控制面板编辑注册表值中禁用Device Manager。我可以在 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\\Microsoft\MMC\\{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;
}

【问题讨论】:

  • 什么版本的 Windows?什么处理器架构?也许您正在运行 32 位代码并更改注册表的 32 位视图(WOW64 重定向),但 Windows 正在查看 64 位注册表。
  • 我使用的是 windows 7 专业版 32 位。

标签: c++ windows


【解决方案1】:

您应该禁用 WOW64 注册表重定向,否则您的程序可能会更改 WOW6432Node 而不是 HKEY_LOCAL_MACHINE。

Disabling registry redirection for a registry key on an x64 platform

【讨论】:

  • 感谢您的回答,但是 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") );这部分代码确实完美地改变了我的处理器的名称。其余代码有什么问题。我使用的是 Windows 7 专业版。
【解决方案2】:

维奥拉,我找到了解决方案。解决方案是这样的:

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);

【讨论】:

    猜你喜欢
    • 2023-01-03
    • 2022-06-10
    • 1970-01-01
    • 2010-10-06
    • 2012-04-07
    • 2020-05-10
    • 1970-01-01
    • 2020-11-24
    • 2013-05-17
    相关资源
    最近更新 更多