如何使用RegOpenKeyEx创建或查询注册表

时间:2016-12-13 07:11:55

标签: c++ c registry

我想将注册表值写入

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) " 因为错误表明注册表中没有Identity密钥。

如果注册表不存在,如何创建注册表。 我想创建如果密钥不存在并打开它注册表就在那里。

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

1 个答案:

答案 0 :(得分:1)

这个密钥存在吗? MSDN:

  

与RegCreateKeyEx函数不同,RegOpenKeyEx函数不支持   如果注册表中不存在该键,则创建指定的密钥。

先尝试regedit

其次,你指定KEY_READ,然后想写点什么。