6、注册表操作

1.

在这里插入图片描述

2.

在这里插入图片描述

3.

在这里插入图片描述

4.

在这里插入图片描述

5.

在这里插入图片描述

1.默认的按钮全部删除

在这里插入图片描述

2.拖一个按钮过来,修改按钮名称

在这里插入图片描述
在这里插入图片描述

3.双击按钮

在这里插入图片描述

4.添加静态文本,修改名称

在这里插入图片描述

在这里插入图片描述

5.添加第二个按钮并修改名称

在这里插入图片描述

在这里插入图片描述

6.添加第3,第4个按钮

在这里插入图片描述

在这里插入图片描述

7.按钮添加代码
void CanniuDlg::OnBnClickedButton1()
{
	// TODO: 在此添加控件通知处理程序代码
	long lRet;
	HKEY hkey;
	TCHAR tchData[64];//保存从注册表中查到的字符
	DWORD dwSize;
	/*
	DWORD 32位无符号整数
	int   32位有符号整数
	long  32位有符号整数
	long long 64位有符号整数
	*/
/*打开注册表
LONG RegOpenKeyEx(
HKEY hKey, // 已经打开键的句柄
LPCTSTR lpSubKey, // 子键的名称-注册表路径
DWORD ulOptions, // 保留
REGSAM samDesired, // 安全访问标记-读取内容
PHKEY phkResult // 指向将要打开键的句柄-打开后得到的句柄
);
*/
	lRet = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
		_T("HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0"),
		0,
		KEY_QUERY_VALUE,
		&hkey);
	dwSize = sizeof(tchData);
	if(lRet == ERROR_SUCCESS)
	{
	//读取key的值
	   lRet = RegQueryValueEx(hkey,
		   _T("ProcessorNameString"),
		   NULL,
		   NULL,
		   (LPBYTE)tchData,//传入字符数组
		   &dwSize);
	   if(lRet == ERROR_SUCCESS)
	   {
	       SetDlgItemText(IDC_STATIC_CPU,tchData);//将读取到的值写入文本框
	   }
	   else
	   {
	       AfxMessageBox(_T("RegQueryValueEx failed."));//读取失败
	   }
	}
	else
	{
	    AfxMessageBox(_T("RegOpenKeyEx failed."));//打开失败
	}
	RegCloseKey(hkey);
}

void CanniuDlg::OnBnClickedButton2write()
{
	// TODO: 在此添加控件通知处理程序代码
	HKEY hkey;
	RegCreateKey(HKEY_LOCAL_MACHINE,_T("SOFTWARE\\MyAppTest"),&hkey);//创建注册表
	RegSetValue(hkey,NULL,REG_SZ,_T("caijunhong"),8);//保存要写入的数据,后面不带EX的只能添加一个默认的值,带有EX的可以添加多个值
	DWORD dwAge = 18;//定义年龄为18
	RegSetValueEx(hkey, _T("age"), 0, REG_DWORD,(CONST BYTE*)&dwAge,4);//写入年龄
	RegCloseKey(hkey);
}

void CanniuDlg::OnBnClickedButton3Read()
{
	// TODO: 在此添加控件通知处理程序代码
	LONG lValue;
	RegQueryValue(HKEY_LOCAL_MACHINE,_T("SOFTWARE\\MyAppTest"),NULL,&lValue);//读取注册表
	TCHAR *pBuf = new TCHAR[lValue];//创建动态字符串
	RegQueryValue(HKEY_LOCAL_MACHINE,_T("SOFTWARE\\MyAppTest"),pBuf,&lValue);//读取数值
	AfxMessageBox(pBuf);//用文本框显示
}

void CanniuDlg::OnBnClickedButton4Age()
{
	// TODO: 在此添加控件通知处理程序代码
	HKEY hkey;
	RegOpenKey(HKEY_LOCAL_MACHINE,_T("SOFTWARE\\MyAppTest"),&hkey);//读KEY之前要先打开
	DWORD dwType;
	DWORD dwValue;
	DWORD dwAge;
	RegQueryValueEx(hkey,_T("age"),0,&dwType,(LPBYTE)&dwAge,&dwValue);
	CString str;
	str.Format(_T("age = %d"), dwAge);
	AfxMessageBox(str);
}

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

发布了15 篇原创文章 · 获赞 31 · 访问量 10万+

猜你喜欢

转载自blog.csdn.net/qq_42250189/article/details/104991158