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