通行证: 用户 密码 域名空间  下载中心 社区论坛 信息公告 MY小屋
联系我们
设为首页
加入收藏

 

QQ,ASP,PHP,JSP,XML,SQL,.Net,编程 程序 网页图象 建站经验 私服
首页 | 新闻资讯 | 编程开发 | 网页设计 | 图形图象 | 网络媒体 | 网站模板 | 数 据 库 | 投稿
论坛 | 操作系统 | 系统优化 | 网络安全 | 黑客技术 | 硬件学堂 | 硬件报价 | 服 务 器 | 地图
专题 | 应用软件 | 聊天通讯 | Q Q 专栏 | 建站经验 | 在线工具 | 站长Club | 注 册 表 | 旧版
社会 | 游戏娱乐 | 设计欣赏 | 疑难解答 | 社区论坛 | 韩国素材 | 素材图库 | 广告服务 | 服务
当前位置:首页>>操作系统>>注册表>>正文 新版上线![旧版]
注:打开慢时请稍等

在VC++中访问和修改系统注册表

http://www.iyit.net  日期:2006-6-28 18:17:15  来源:  点击:
参加讨论】indows95/98的注册表包含了Windows95/98的系统配置、PC机的硬件配置、Win32应用程序和用户的其他设置信息。注册表和INI文件不同,它是多层次的树状数据结构,具有六个分支(根键),每个分支又由许多的键和键值组成,而每个键则代表一个特定的配置项目。
  在实际的编程工作中,我们遇到了如何在Visual C++中对Windows95/98注册表整个树状结构信息进行访问和修改的问题,如查询和修改注册表中用户姓名和公司名称的有关信息。通过编程实践,我们实现了在Visual C++中查询和修改系统注册表的有关信息。下面以一个实例说明具体的编程方法。
  在Visual C++ 6.0或5.0环境中新建一基于对话框的工程,设置了两个命令按钮,名为“查询用户信息”和“修改用户信息”,用来查询和修改注册表中用户姓名和公司名称。这里须要指出的是,用户的信息位于系统注册表中 HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersion 的位置,键值名RegisteredOwner和RegisteredOrganization分别表示用户的姓名和用户公司的名称。
  1.查询用户信息的代码
  HKEY hKEY; //定义有关的 hKEY, 在查询结束时要关闭。
  LPCTSTR data_Set=″Software\Microsoft\Windows\CurrentVersion\″;
  //打开与路径 data_Set 相关的 hKEY,第一个参数为根键名称,第二个参数表。
  //表示要访问的键的位置,第三个参数必须为0,KEY_READ表示以查询的方式。
  //访问注册表,hKEY则保存此函数所打开的键的句柄。
  long ret0=(::RegOpenKeyEx(HKEY_LOCAL_MACHINE,data_Set, 0, KEY_READ, &hKEY));
  if(ret0!=ERROR_SUCCESS) //如果无法打开hKEY,则终止程序的执行
  {MessageBox(″错误: 无法打开有关的hKEY!″);
  return;}
  //查询有关的数据 (用户姓名 owner_Get)。
  LPBYTE owner_Get=new BYTE[80];
  DWORD type_1=REG_SZ ; DWORD cbData_1=80;
  //hKEY为刚才RegOpenKeyEx()函数所打开的键的句柄,″RegisteredOwner″。
  //表示要查 询的键值名,type_1表示查询数据的类型,owner_Get保存所。
  //查询的数据,cbData_1表示预设置的数据长度。
long ret1=::RegQueryValueEx(hKEY, ″RegisteredOwner″, NULL,
  &type_1, owner_Get, &cbData_1);
  if(ret1!=ERROR_SUCCESS)

  MessageBox(″错误: 无法查询有关注册表信息!″);
  return;
  }
  // 查询有关的数据 (公司名 company_Get)
  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(″错误: 无法查询有关注册表信息!″);
  return;
   }
  // 将 owner_Get 和 company_Get 转换为 CString 字符串, 以便显示输出。
  CString str_owner=CString(owner_Get);
  CString str_company=CString(company_Get);
  delete[] owner_Get; delete[] company_Get;
  // 程序结束前要关闭已经打开的 hKEY。
  ::RegCloseKey(hKEY);
  ……
  这样,上述程序执行完毕,字符串str_owner和str_company则表示查询到的用户的姓名和公司的名称,在VC++中便可用对话框的方式将其显示出来。
  2. 修改用户信息的代码(注意和上述的查询代码属于不同的函数体)
  在程序中我们先显示一个对话框,要求用户输入新的用户姓名和公司名称并按确认键,将取得CString类型的有关字符串。要先将其转换为LPBYTE(即unsigned char*)型的数据类型,以便后面的函数调用。下面是程序中用到的将CString型转换为LPBYTE的转换函数:
  LPBYTE CString_To_LPBYTE(CString str)
  {
  LPBYTE lpb=new BYTE[str.GetLength()+1];
  for(int i=0; i   lpb[str.GetLength()]=0;
  return lpb;
  }
  以下则是具体的修改注册表用户信息的代码:
  CString str_owner, str_company;
  …… //通过对话框输入新的用户信息,保存到str_owner和str_company

本新闻共2页,当前在第1页  1  2  


编辑:黑鹰 [发送给好友] [打印本页] [关闭窗口] [返回顶部]
上一篇:C++Builder中注册表的操作
下一篇:VB4.0对注册表操作的命令
转载请注明来源:www.iyit.net
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。

 相关文章
ASP.NET下MVC设计模式的实现 PHP.MVC的模板标签系统(一) PHP.MVC的模板标签系统(二)
PHP.MVC的模板标签系统(三) PHP.MVC的模板标签系统(四) PHP.MVC的模板标签系统(五)
MVC模式的PHP实现 如何在VC++ 编写的组件中使用 ADO vc中几个数字信号处理算法程序
用VC程序来创建SQL Server ODBC数据源 VC下利用Pro*C开发Oracle接口 .Net环境下基于Ajax的MVC方案
使用VC++6.0制作ASP服务器控件简介 PHP:MVC迷思 MVC模式的PHP实现
理解PHP中的MVC编程之MVC框架简介 理解PHP中的MVC编程之控制器 ASP.NET下MVC设计模式的实现
在delphi.net的VCL.net里使用Ado.net Delphi8 for .net 的 VCL 类库 用VC++自制王码五笔输入法安装包 
在VC++项目中为MDI主框架窗口添加位图 VC++编程实现对火焰的计算机动态仿真 VC下ADO开发实践之一
最新更新 热点排行 推荐新闻
VB.NET注册表编程
让注册表记住VFP应用程序的使用次数
在VB中使用注册表
利用WindowsAPI函数和注册表获取系统信
MS-DOS方式下对注册表的编程
VB.NET注册表编程
让注册表记住VFP应用程序的使用次数
在VB中使用注册表
利用WindowsAPI函数和注册表获取系统信
MS-DOS方式下对注册表的编程
用注册表给应用程序加口令
对注册表进行编程的“捷径”
用VB函数轻松访问系统注册表
在VB中调用API操作注册表
编程解决注册表问题所需的函数详解
VB.NET注册表编程
让注册表记住VFP应用程序的使用次数
在VB中使用注册表
利用WindowsAPI函数和注册表获取系统信
MS-DOS方式下对注册表的编程
微软将于6月13日发布WORD漏洞补丁
PPLive最新内部版本揭密
移花接木-照片换脸术
CPU降温软件
借助黑龙江网通免费刷取QQ会员
KMPlayer常见问题及解决方法整理
解决局域网不能互相访问之全攻略
用Photoshop替换颜色做漂亮效果图
NERO刻录使用教程
某外企SQL Server面试题
共享软件的十大破解工具推荐
重庆青年建立个人网站 每月固定收入约
没见过 是读卡器也是刻录机!
ASP.NET2.0数据库入门之常见错误
威金蠕虫肆虐互联网 发送病毒链接迅速
流氓软件拉MSN用户征婚 伪装好友发邀请
网际快车1.72完全免费无广告、下载地址
拼音加加VS紫光输入法
给年轻工程师的“十大忠告” 
巧用CSS滤镜做图案文字
 友情链接
设置首 页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
Copyrights © 2004-2006 iYiT.Net All Rights Reserved.
网站合作、广告联系QQ:147007642、466949678
易特网络技术 点击这里给我发消息