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检测Office版本

现在做的一个软件,里边用到了ActiveX控件,内嵌了Word,在安装Word的电脑运行是没问题的,但是在没有Word环境的电脑上就出问题,所以需要检测一下当前机器是否安装了Office,然后做出友好...
  • shenshen211
  • shenshen211
  • 2016年03月17日 17:05
  • 377

用VC++实现USB接口读写数据的程序

用VC++实现USB接口读写数据的程序 使用一个GUIDguidHID_1查找并打开一个USB设备 extern "C" int PASCAL SearchUSBDevice() { ...
  • sha_jinhao
  • sha_jinhao
  • 2013年02月27日 16:19
  • 1889

vc下读写硬盘的操作

vc下读写硬盘的操作,简单来说就是将硬盘当作是一个文件流来操作:下面是实现的函数: //drv 是盘符,一个字符,替换字符串“\\.\A:”中的字符A //startSector 是开始扇区号 //s...
  • xgx198831
  • xgx198831
  • 2015年05月22日 16:50
  • 1725

VC 逐行读写TXT文件

用流在写日志时,发现如果把"\r\n"直接写在字符串的尾部,则会造成乱码,其中的原因网上有很多说明,主要是标准库与WINDOWS的回车换行的机制略有差别。但只要写到另一行重起就没有 用流在写日志时,...
  • yueyaquanBoy
  • yueyaquanBoy
  • 2014年04月18日 11:12
  • 2547

VC++ excel 写入与写出数据

本文转载自:http://b217dgy.blog.51cto.com/5704306/1215234 1、添加头文件 #include "stdafx.h" #include "t...
  • liucherish
  • liucherish
  • 2016年11月16日 11:37
  • 2432

VC用OLE方式读写Excel

(转自:http://blog.csdn.net/qinghezhen/article/details/9906023)   前几天要做一个项目,需要读取Excel中的数据。从网上查资料发现,...
  • Xp275500976
  • Xp275500976
  • 2014年03月25日 10:55
  • 4792

在VC++中读写INI文件

在我们写的程序当中,总有一些配置信息需要保存下来,以便完成程序的功能,最简单的办法就是将这些信息写入INI文件中,程序初始化时再读入.具体应用如下:   一.将信息写入.INI文件中.   1.所...
  • qq_23992597
  • qq_23992597
  • 2016年11月22日 22:13
  • 1829

VC中怎么读取文件

一、   CStdioFile 二、   FILE* f = fopen("file name", "mode");   char buff[size];   fread(buff, siz...
  • u014301158
  • u014301158
  • 2015年04月26日 09:04
  • 1000

VC 常见问题百问

(1) 如何通过代码获得应用程序主窗口的 指针? 主窗口的 指针保存在CWinThread::m_pMainWnd中,调用AfxGetMainWnd实现。 AfxGetMainWnd() ->Sh...
  • qq_23992597
  • qq_23992597
  • 2016年05月16日 14:23
  • 706

使用VC++6.0 MFC OLE操作Excel 进行简单的读写

使用VC++6.0 MFC OLE操作Excel 进行简单的读写 使用VC60 MFC OLE操作Excel 进行简单的读写 - 简单的准备工作 - 所需求的类库 - 写入操作 -读取操作 -总结- ...
  • llwodao
  • llwodao
  • 2016年06月02日 17:00
  • 995
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:VC读写注册表
举报原因:
原因补充:

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