VC读写注册表

原创 2007年09月12日 09:15:00

读注册表:

void CRegeditDlg::OnQuery()
{
 HKEY hKEY;
 LPCTSTR data_Set="Software//Microsoft//Windows//CurrentVersion//";

 //访问注册表,hHEY则保存此函数所打开的句柄
 long ret0=(::RegOpenKeyEx(HKEY_LOCAL_MACHINE,data_Set,0,KEY_READ,&hKEY));
 if(ret0!=ERROR_SUCCESS)
 {
  MessageBox("Error!Can't open hKEY!");
  return;
 }
 //查询有关的数据
 LPBYTE owner_Get=new BYTE[80];
 DWORD type_1=REG_SZ;
 DWORD cbData_1=80;

 long ret1=::RegQueryValueEx(hKEY,"RegisteredOwner",NULL,&type_1,owner_Get,&cbData_1);
 if(ret1!=ERROR_SUCCESS)
 {
  MessageBox("Error!Can't query the value!");
  return;
 }

 LPBYTE company_Get=new BYTE[80];
 DWORD type_2=REG_SZ;
 DWORD cbData_2=80;
 long ret2=::RegQueryValueEx(hKEY,"RegisteredOrganization",NULL,&type_2,company_Get,&cbData_2);
 if(ret2!=ERROR_SUCCESS)
 {
  MessageBox("Error!Can't query the value!");
  return;
 }

 //将owner_Get company_Get转换成CString
 m_strOwner=CString(owner_Get);
 m_strCompany=CString(company_Get);
 delete[] owner_Get;
 delete[] company_Get;

 //close the connection
 ::RegCloseKey(hKEY);
 UpdateData(FALSE);
}

 

 

 

写注册表:

void CRegeditDlg::OnModify()
{
 UpdateData(TRUE);
 HKEY hKEY;
 LPCTSTR data_Set="Software//Microsoft//Windows//CurrentVersion";

 long ret0=(::RegOpenKeyEx(HKEY_LOCAL_MACHINE,data_Set,0,KEY_WRITE,&hKEY));
 if(ret0!=ERROR_SUCCESS)
 {
  MessageBox("Error! Can't open hKEY!");
  return;
 }
 LPBYTE owner_Set=CString_To_LPBYTE(m_strOwner);
 DWORD type_1=REG_SZ;
 DWORD cbData_1=m_strOwner.GetLength()+1;

 long ret1=::RegSetValueEx(hKEY,"RegisteredOwner",NULL,type_1,owner_Set,cbData_1);
 if(ret1=ERROR_SUCCESS)
 {
  MessageBox("Error! Can't write the Reg!");
  return;
 }

 LPBYTE company_Set=CString_To_LPBYTE(m_strCompany);
 DWORD type_2=REG_SZ;
 DWORD cbData_2=m_strCompany.GetLength()+1;
 long ret2=::RegSetValueEx(hKEY,"RegisteredOrganization",NULL,type_2,company_Set,cbData_2);
 if(ret1=ERROR_SUCCESS)
 {
  MessageBox("Error! Can't write the Reg!");
  return;
 }
 else
 {
  MessageBox("Success!!");
 }
}

LPBYTE CRegeditDlg::CString_To_LPBYTE(CString str)
{
 LPBYTE lpb=new BYTE[str.GetLength()+1];
 for(int i=0;i<str.GetLength();i++)
  lpb[i]=str[i];
 lpb[str.GetLength()]=0;
 return lpb;
}
 

相关文章推荐

VC-读写 注册表+ini+xml

  • 2015年01月21日 11:26
  • 97KB
  • 下载

Windows读写注册表的例子

在MSDN中,有个读写注册表的例子,很有参考价值。拷贝在这里

C++ 注册表读写

  • 2017年10月20日 14:47
  • 2KB
  • 下载

Qt编程4:QSettings使用一(windows注册表的读写:实际操作)

1、Qstting
  • jiezhj
  • jiezhj
  • 2014年06月12日 13:50
  • 1715

注册表的读写

  • 2012年10月31日 15:37
  • 6KB
  • 下载

使用API对注册表进行读写

首先明确一下HKEY的概念。从字面上看它是一个Key的句柄。读写位置的确定就靠它了。打开注册表编辑器("regedit"),里面的HKEY_CURRENT_USER还有HKEY_LOCAL_MACHI...

java注册表读写

  • 2012年09月04日 18:04
  • 38KB
  • 下载

[转]Delphi 几个读写注册表的函数

转自: http://topic.csdn.net/t/20031117/10/2464684.html {*************************************...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:VC读写注册表
举报原因:
原因补充:

(最多只允许输入30个字)