注册表是Windows的一个内部数据库,是一个巨大的树状分层的数据库。它记录了用户安装在计算机上的软件和每个程序的相互关联关系。它包含了计算机的硬件配置信息,包括自动配置的即插即用的设备和已有的各种设备。
下面例子是对注册表的写入与读出处理:
项目---创建---单文档---完成
添加菜单---option;
在option添加子菜单:
RegWrite和RegRead 并添加子菜单事件处理函数。
写入注册表事件程序:
1 void CRegTrackingView::OnRegoptionRegwrite() 2 { 3 // TODO: Add your command handler code here 4 UINT i; 5 HKEY m_hKey; 6 i = RegCreateKey(HKEY_LOCAL_MACHINE, _T("SOFTWARE\A21VC"), &m_hKey); 7 if (i == 0) 8 { 9 RegSetValue(m_hKey, TEXT("RegDemo"), REG_SZ, TEXT("123"), strlen("123")); 10 MessageBox(_T("OK")); 11 } 12 else 13 { 14 MessageBox(_T("Failed.")); 15 } 16 RegCloseKey(m_hKey); 17 }
读出注册表程序:
1 void CRegTrackingView::OnRegoptionRegread() 2 { 3 // TODO: Add your command handler code here 4 LONG lRead; 5 RegQueryValue(HKEY_LOCAL_MACHINE, _T("SOFTWARE\A21VC\RegDemo"), NULL, &lRead); 6 char* pStr = new char[lRead]; 7 RegQueryValue(HKEY_LOCAL_MACHINE, _T("SOFTWARE\A21VC\RegDemo"), pStr, &lRead); 8 MessageBox(pStr); 9 }
End.
以上例子实际运行时正常,但在注册表内却无法找到子健参数信息,不知道是不是系统原因,这有待研究...
谢谢。