2016-12-13 6 views
0

Я хочу, чтобы записать значение реестра вкак создать или реестр запросов с RegOpenKeyEx

HKEY_CURRENT_USER\Software\Adobe\Acrobat Reader\11.0\Identity => key = tName , value="user1" 

, но каждый раз, когда я получил "RegOpenKeyEx SOFTWARE\Adobe\Acrobat Reader\11.0\Identity failed (error=2) " как ошибка предложить ключ идентификации нет в реестре.

Как создать реестр, если он отсутствует. Я хочу создать, если ключ отсутствует и открыть его реестр.

lStat = RegOpenKeyEx(HKEY_CURRENT_USER, /*handle of open key */ 
     szSubKey, /* address of name of subkey to open */ 
     0, /* reserved */ 
     KEY_READ , /* security access mask */ 
     &hKey /* address of handle of open key */ 
     ); 
if (lStat != ERROR_SUCCESS) { 
     sprintf(szMsg,"RegOpenKeyEx %s failed (error=%ld) ", 
     szSubKey, lStat); 
     traceMsg(szMsg); 
     return lStat; 
    } 

    lStat = RegSetValueEx(hKey,(LPCTSTR)szValue, NULL, &Type, 
      (LPBYTE)szUser, strlen(szUser)+1); 

enter image description here

+0

Трудно точно сказать, что происходит. Пример: вы передаете правильную строку? Попробуйте общую технику отладки, т. Е. Попробуйте многочисленные варианты, например, попробуйте открыть какой-то другой ключ, например, просто «Программное обеспечение». Будет ли это работать? если да, попробуйте что-то более сложное. –

ответ

1

этот ключ существует там ли? MSDN:

В отличие от функции RegCreateKeyEx, функция RegOpenKeyEx не создать указанный ключ, если ключ не существует в реестре.

Пробег: regedit Первый.

Во-вторых, вы указываете KEY_READ, а затем хотите что-то написать.