Не удается отключить диспетчер устройств с помощью программы на C ++ - PullRequest
1 голос
/ 22 марта 2012

Я хочу отключить Диспетчер устройств в панели управления, редактируя значения реестра.Я могу сделать это в C #, но я хочу сделать это в C ++ без использования .NET Framework.Мне удалось изменить имя моего процессора в 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;
}

Ответы [ 2 ]

1 голос
/ 22 марта 2012

Вам следует отключить перенаправление реестра WOW64, иначе ваша программа может внести изменения в WOW6432Node вместо HKEY_LOCAL_MACHINE.

См. Отключение перенаправления реестра для ключа реестра на платформе x64

0 голосов
/ 23 марта 2012

Виола, я получил решение. Решение будет таким:

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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...