VC++读、写注册表

最后更新于:2022-04-01 20:34:31

系统注册表中存有很多重要的信息,我们有必要掌握比较简单地写入和读取注册的表的方法。下面结合实例来说明(**完整实例可在我的CSDN资源中下载:[http://download.csdn.net/detail/margin1988/3677190](http://download.csdn.net/detail/margin1988/3677190)**): 1.写注册表: ~~~ HKEY hSubKey; DWORD lpdw; ~~~ (1)创建“项”(键): ~~~ RegCreateKeyEx(HKEY_LOCAL_MACHINE,"Software\\Reg\\Admin",0,NULL,REG_OPTION_NON_VOLATILE,KEY_WRITE,NULL,&hSubKey,&lpdw); //REG_OPTION_NON_VOLATILE:保存,重启还在;REG_OPTION_VOLATILE:不保存,重启不在。 ~~~ (2)设置“值”(键值): ~~~ RegSetValueEx(hSubKey,"Manager",0,REG_SZ,(LPBYTE)"Margin",strlen("Margin")); ~~~ (3)释放注册“项”(键)的句柄: ~~~ RegCloseKey(hSubKey); ~~~ 2.读取注册表: (1)打开注册表中的该“项”(键): ~~~ HKEY hKEY;//键 long ret = ::RegOpenKeyEx(HKEY_LOCAL_MACHINE,"Software\\Reg\\Admin",0, KEY_READ,&hKEY); if(ret!=ERROR_SUCCESS) { MessageBox("错误: 查询无法打开有关的hKEY!"); return; } ~~~ (2)读取指定“值”的数据: ~~~ unsigned char tmp[256]="\0"; //读出的数据 DWORD type=REG_SZ; DWORD size=256;//必须大于你的键值字符长度 ret=::RegQueryValueEx(hKEY,"Manager",NULL,&type,tmp,&size); if(ret!=ERROR_SUCCESS) { MessageBox("错误:无法查询有关注册表信息!"); return; } // 数据类型转化:unsigned char *CString〔这也是一个小知识点〕 CString tmpstring; //读出的数据 tmpstring.Format("%s",tmp); ~~~
';