VC读写注册表

读注册表:

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值