关于注册表使用的几个问题
- 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); }
- 原因:自己想!!!!!