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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sunjikui1255326447/article/details/88862654

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);
	}
}

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);
	}
}

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

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

(本章代码参考VC驿站)

猜你喜欢

转载自blog.csdn.net/sunjikui1255326447/article/details/88862654