C/C++注册表【5】其他类型的键值设置

1、DWORD 类型键值的设置

void CTestDlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
HKEY hKey = NULL;
TCHAR *lpszSubKey = _T("Console");
LONG lRet = RegOpenKeyEx(HKEY_CURRENT_USER, lpszSubKey, 0, KEY_ALL_ACCESS, &hKey);
if (lRet == ERROR_SUCCESS) {
DWORD dwValue = 10;
RegSetValueEx(hKey, _T("TestDWORD"), 0, REG_DWORD, (LPBYTE)&dwValue, sizeof(DWORD));

DWORD dwBuffLen = sizeof(DWORD);
BYTE *lpByte = new BYTE[dwBuffLen];
ZeroMemory(lpByte, dwBuffLen);
memcpy(lpByte, &dwValue, dwBuffLen);
RegSetValueEx(hKey, _T("BYTEDWORD"), 0, REG_DWORD, lpByte, dwBuffLen);
delete[] lpByte;

DWORD dwRealValue = 0;
dwBuffLen = sizeof(DWORD);
RegQueryValueEx(hKey, _T("TestDWORD"), NULL, NULL, (LPBYTE)&dwRealValue, &dwBuffLen);

RegCloseKey(hKey);
}
}

C/C++注册表【5】其他类型的键值设置_程序代码

C/C++注册表【5】其他类型的键值设置_控件_02

2、子键下默认键值的设置

void CTestDlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
HKEY hKey = NULL;
TCHAR *lpszSubKey = _T("Console");
LONG lRet = RegOpenKeyEx(HKEY_CURRENT_USER, lpszSubKey, 0, KEY_ALL_ACCESS, &hKey);
if (lRet == ERROR_SUCCESS) {
CString strValue = _T("cctry.com");
RegSetValueEx(hKey, NULL, 0, REG_SZ, (LPBYTE)strValue.GetBuffer(), strValue.GetLength() * sizeof(TCHAR));
strValue.ReleaseBuffer();

BYTE szBuf[20] = { 0 };
DWORD dwBuffLen = 20;
RegQueryValueEx(hKey, NULL, NULL, NULL, szBuf, &dwBuffLen);

CString strByte;
strByte.Format(_T("%s"), szBuf);
MessageBox(strByte);
RegCloseKey(hKey);
}
}

C/C++注册表【5】其他类型的键值设置_键值_03

3、查看注册表实现文件类型关联

这里不介绍编程,介绍查看方式:win+R------》cmd-------》ftype。(可以写个简单的bat,让结果保存在txt文本。)

(本章代码参考VC驿站)