打开注册表
void CREGDemoDlg::OnBnClickedBtnOpen()
{
HKEY hKey;
if (ERROR_SUCCESS != RegOpenKeyEx(HKEY_CURRENT_USER, L"SOFTWARE\\Baidu.com", 0, KEY_ALL_ACCESS, &hKey))
{
MessageBox(L"打开注册表失败");
return;
}
}
对注册表的键的操作
创建子键
HKEY hKey;
DWORD dwDisposition;
if (ERROR_SUCCESS != RegCreateKeyEx(HKEY_CURRENT_USER, L"Software\\Baidu.com\\12345", 0, NULL, REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL, &hKey, &dwDisposition))
{
MessageBox(L"创建失败");
}
删除子键
RegDeleteKey(HKEY_CURRENT_USER, L"Software\\Baidu.com\\12345");
遍历子键
HKEY hKey;
if (ERROR_SUCCESS != RegOpenKeyEx(HKEY_CURRENT_USER, L"Software\\2345.com", 0, KEY_ENUMERATE_SUB_KEYS, &hKey))
{
MessageBox(L"打开注册表失败");
return;
}
DWORD dwIndex = 0;
TCHAR szName[MAX_PATH];
LONG result;
while (1)
{
result = RegEnumKey(hKey, dwIndex, szName, MAX_PATH);
if (result == ERROR_NO_MORE_ITEMS || result == ERROR_INVALID_HANDLE)
break;
else
{
szName.Format(L"%s\r\n", szName);
int nLength = m_edit.GetWindowTextLength();
m_edit.SetSel(nLength, -1);
m_edit.ReplaceSel(szName);
}
dwIndex++;
}
RegCloseKey(hKey);
对注册表值的操作
读取值
CString str;
HKEY hKey;
if (ERROR_SUCCESS != RegOpenKeyEx(HKEY_CURRENT_USER, L"SOFTWARE\\Baidu.com\\BaiduYunGuanjia", 0, KEY_ALL_ACCESS, &hKey))
{
str.Format(L"打开注册表失败.错误代号:%d",GetLastError());
MessageBox(str);
return;
}
DWORD dwType = REG_SZ;
TCHAR szData[MAX_PATH] = {0};
DWORD dwSize = 0;
RegQueryValueEx(hKey, L"Version", NULL, &dwType,NULL, &dwSize);
str.Format(L"第一次查询.错误代号:%d", GetLastError());
MessageBox(str);
RegQueryValueEx(hKey, L"Version", NULL, &dwType,(LPBYTE)szData, &dwSize);
UpdateMsg(szData);
RegCloseKey(hKey)
void CREGDemoDlg::UpdateMsg(CString str)
{
str.Format(L"%s\r\n", str);
int nLength = m_edit.GetWindowTextLength();
m_edit.SetSel(nLength, -1);
m_edit.ReplaceSel(str);
}
设置值
CString str;
HKEY hKey;
if (ERROR_SUCCESS != RegOpenKeyEx(HKEY_CURRENT_USER, L"Software\\Microsoft\\Windows\\CurrentVersion\\Run", 0, KEY_ALL_ACCESS, &hKey))
{
str.Format(L"打开注册表失败.错误代号:%d",GetLastError());
MessageBox(str);
return;
}
TCHAR szValue[MAX_PATH] = {0};
GetModuleFileName(NULL, szValue, MAX_PATH);
RegCloseKey(hKey);