关于注册表使用的几个问题

  • RegOpenKeyEx总是返回2的问题:
    • 如果打开的HKEY_LOCAL_MACHINE下面的键值,并且是32位程序在64位系统上使用,则需要打开时需要添加以下权限: KEY_WOW64_64KEY | KEY_ALL_ACCESS
    • 例子:RegOpenKeyEx(HKEY_LOCAL_MACHINE, _T("SOFTWARE\Microsoft\Windows\CurrentVersion\HomeGroup\NetworkLocations\Work"),
                  0, KEY_WOW64_64KEY | KEY_ALL_ACCESS, &hNetLocationKey)
  • RegEnumValue和RegDeleteValue组合删除只知道键值数据的某些注册表键值时总是山不完全的问题:
    • 只需要将RegEnumValue的index参数设置为0即可;
    • 例子:
                  if (RegEnumValue(hNetLocationKey, 0, chValueName, &dwNameSize,
                      NULL, &dwType, szBrowserFileInfo, &dwSize) != ERROR_SUCCESS) {
                      break;
                  }
                  CDuiString strLocation = (TCHAR*)(szBrowserFileInfo);
                  if (strLocation.Find(QA_VPN_DESCRIPTION) == 0) {
                      RegDeleteValue(hNetLocationKey, chValueName);
                  }
    • 原因:自己想!!!!!
原文地址:https://www.cnblogs.com/leomoli/p/7944060.html