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

  • 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);
                  }
    • 原因:自己想!!!!!
posted @ 2017-12-01 18:58  卖杏花的陆游  阅读(176)  评论(0编辑  收藏  举报