值。
在初始化对话框时就应打开注册表并读取所需的信息,这三项存放路径为HKEY_LOCAL_MACHINE \SOFTWARE \Microsoft \Windows \CurrentVersion下,
分别读出windows 版本号(放置于Version键值中),注册用户名(放置于RegisteredOwner键值中),Windows 安装目录(放置于SystemRoot 键值中 ),更多的信息请使用Windows 目录下的 RegEdit.exe
程序.
需用到注册表类的原
程序文件中加上 #inxlude " MyRegKey.h" 即可。
在文件 RegTechDlg.cpp 中初始化对话框的地方加上以下代码打开路径并读取键值:
BOOL CRegtechDlg::OnInitDialog()
{
CDialog::OnInitDialog();
.
.
// TODO: Add extra initialization here
//###########################################
// 打开注册表路径 .
CMyRegKey regKey1,regKey2,regKey3;
regKey1.RegOpen(HKEY_LOCAL_MACHINE,
_T("Software\\Microsoft\\Windows\\CurrentVersion"));
regKey2.RegOpen(HKEY_LOCAL_MACHINE,
_T("Software\\Microsoft\\Windows\\CurrentVersion"));
regKey3.RegOpen(HKEY_LOCAL_MACHINE,
_T("Software\\Microsoft\\Windows\\CurrentVersion"));
// 读取键值并分别传递到编辑控件参数中去:
regKey1.RegRead(_T("Version"),m_Version);
regKey2.RegRead(_T("RegisteredOwner"),m_UserID);
regKey3.RegRead(_T("SystemRoot"),m_Install);
UpdateData(FALSE);
//############################################
return TRUE; // return TRUE unless you set the focus to a control
}
在重新输入了注册用户名后,按下更改按钮(按钮控件ID_ChangeID),将完成注册表的写入操作:
void CRegtechDlg::OnChangeID()
{
//########################
CMyRegKey regKey;
regKey.RegOpen(HKEY_LOCAL_MACHINE,
_T("SOFTWARE\\Microsoft\\Windows\\CurrentVersion"));
// 传递从编辑拦输入的值并写入打开路径的指定键值名中:
UpdateData(TRUE);
regKey.RegWrite(_T("RegisteredOwner"),m_UserID);
MessageBox("更改注册用户名完毕!","Message",MB_ICONINFORMATION|MB_OK);
///#########################
// TODO: Add your control notification handler code here
}
注册表类在实际应用程序编制中使用频率极高,比如程序员自定义的文件的图标选择等的很多地方都要用到,所以一个成熟优秀的应用程序应尽可能的适应环境及发挥操作系统的各种优势,在此,使用win32 API对Windows灵魂--注册表存取技术的操作已完成 ,你就可以利用它来完善自己的应用
程序了。