动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
电脑书籍下载:程序设计书籍 | 数据库教程书籍 | 平面与多媒体书籍 | 网络通讯书籍 | 系统管理书籍 | 网络安全书籍 | 认证考试书籍
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > C/C++教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ C/C++教程 ]的信息



本月文章推荐
.利用 C++Builder 定制系统菜单.
.三层数据库与应用程序服务器的澄.
.C++中类的数据成员的安全隐患.
.vb.net中windows服务的创建.
.重载CreateParams实现无标题栏的.
.C++类的继承与多重继承的访问控制.
.用Winsock实现语音全双工通信使用.
.汉字行编辑程序.
.C++习题与解析-友元.
.Windows API-GDI入门基础知识详.
.解析static!.
.《c语言程序设计》第一章: C语言.
.用C语言解决鬼谷算题.
.银行常用的打印程序.
.学习c++的50条忠告(初学者必看).
.如何用有限个点拟合出光滑的曲线.
.写好C程序的秘籍(强!).
.VC vs CBuilder.
.迷宫探路II.
.Windows文件保护的应用.

用CB控制Windows注册表

发表日期:2008-3-8 |


    Windows注册表中包含了系统配置、机器硬件配置、Win32应用程序和用户的其他配置信息。注册表根据系统信息分为六个根键(RootKey),其中每个根键各有一个由子键和键值组成的树状结构,每个子键代表一个特定的配置项目。
    用C++Builer控制注册表的要害在于了解TRegistry 类。在C++Builder的VCL类库中,提供了TRegistry类,通过在应用程序中生成这个类的实例,我们可以实现对注册表的控制。在TRegistry类中,重点应该把握如下问题:
    1.TRegistry类的生成
    我们不能用直接声明的方法生成TRegistry的实例,这与VC++中用HKEY直接生成实例的方法不同。必须采用new要害字生成TRegistry 类的实例,然后将指针传递给声名的变量。具体操作如下:
    TRegistry * curReg=new TRegistry;//curReg是 TRegistry类型的指针名
    采用这个方式声明后,curReg的RootKey属性指向 HKEY_CURRENT_USER根键,即默认操作是针对HKEY_CURRENT_USER进行的。
    2.如何打开和关闭主键
    TRegistry类提供了两个成员函数打开一个主键: OpenKey()和OpenKeyReadOnly()函数。其中,OpenKey函数同时提供了创建主键的功能。
    OpenKey()有两个参数,KeyName和canCreate。canCreate 是一个bool型参数,当它设置成true时,假如当前根键下不存在AnsiString类的变量 KeyName所指出的主键,则创建这个主键;否则进入KeyName指出的主键。假如canCreate 设置成false,而当前根键下没有KeyName指出的主键,则函数返回false。
    OpenKeyReadOnly()函数的功能是以只读方式打开一个主键,假如参数值是NULL,则指向RootKey指明的键。
    KeyName参数有两种表示方法:绝对路径表示和相对路径表示。采用绝对路径表示时,串值必须以“\\"开头;采用相对路径则表示KeyName指明的主键是相对于当前主键而言的。
    在注册表使用完毕后,应当及时调用CloseKey()成员函数关闭注册表,并调用delete方法将用new申请的内存空间释放。
    3.关于当前主键下子键值的获取
    我们可以用GetKeyNames()成员函数得到当前主键下所有子键的名称,用GetKeyInfo得到更加具体的信息。
    必须指出,虽然GetKeyNames()的说明成void __fastcall GetKeyNames(Classes::TStrings * Strings),也就是说,它的参数类型是TString,但是我们并不能首先声明一个TString类的实例,然后将它作为参数用于GetKeyNames()。这主要是由于TStrings类含有抽象成分。我们的解决方法是采用TStrings类的派生类TStringList来代替TStrings声明一个实例,并作为参数用于GetKeyNames()函数。
    在获得子键的名称后,我们就可以利用有关函数进一步确定具体信息。例如,我们可以用GetValueNames()结合Read()和 Write()获得主键的值的具体信息。例如:我们要读“\Software\Sybase”中的 “Location”串值的信息,可以执行如下操作:
    curReg->OpenKey(“\\Software\\Sybase",true);
    AnsiString ValueInfo=CurReg->ReadString(“Location");
    这时,ValueInfo就获得了Location的值。
    4.关于属性的说明
    TRegistry类的一个主要属性是LazyWrite。这个属性的作用是决定是否在执行写操作之后立即将所做的改动反映到实际的注册表中。这个属性的值在注册表对象构造时初始化为true,即不立即将所做的改动反映到实际的注册表中,而是在执行CloseKey()函数之后重写注册表,这样可以提高系统性能。但是,假如我们需要将修改立即反映到注册表(这在许多场合是必要的),则应当首先将LazyWrite属性设置为false,然后执行修改操作。
    另一个值得一提的属性是RootKey,这个属性规定了当前操作的对象是哪一个根键,默认为HKEY_CURRENT_USER。假如需要对其他根键进行操作,直接将目标根键的值赋给RootKey属性即可。
    下面请看我们的程序中的一个实际片段,这个例子的功能是将“\Software\MyInfo”主键下的所有子键名称显示在ComboBox1中:
    #include
    …………
    TRegistry *curReg=new TRegistry;
    curReg->OpenKey(“Software\\MyInfo",true);
    KeyNames=new TStringList();//注重TstirngList类的声明方法!
    curReg->GetKeyNames(KeyNames); for(int i=0;iCount;i++) ComboBox1->Items->Add(KeyNames->
    Strings[i]);
    curReg->CloseKey();
    delete KeyNames;
    …………
    由此看来,在C++Builder环境下控制注册表的问题并不复杂,利用C++强大的类库,我们可以很轻松地完成这个工作。

上一篇:利用C++Builder在Windows“开始”按钮上绘图 人气:237
下一篇:C/C++作用域引申出的编码规范 人气:288
浏览全部C/C++的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-7-25 WikyBlog v1.7.0.1 多国语言版
2008-7-25 乐彼网上开店系统(56770 Eshop)
2008-7-25 赛特网站管理系统sitecms v3.6.0
2008-7-25 Modoer多功能点评系统 v1.0.1 Bu
2008-7-25 Shangducms Teamsuit! v1.1.0 开
2008-7-25 幻影动漫网视频系统(Ppdong) v1.
2008-7-25 acteecompany企业网站建设系统 v
2008-7-25 恒浪整合管理系统 ims v4.1 ACCE
2008-7-25 艺术图库系统 v1.0 beta
2008-7-19 UltraEdit 简体中文增强版 14.10
2008-7-19 CentOS 5.2 i386 LiveCD
2008-7-19 Snapture多功能相机 v1.4
2008-7-19 iAcces中文输入法 v1.0Build016
2008-7-19 Cookbook烹饪秘籍 v2.5
2008-7-19 苹果专用DVD转换工具 v1.1.59汉化
2008-7-19 Modem修复软件ZiPhone修改版04.0
2008-7-19 AgileMessenger即时通讯工具美化
2008-7-19 Sketches画图软件 v0.7b6破解版


  发表评论
姓 名: 验证码:
内 容:
[ 汉字翻译拼音 ] [ 广告代码 ] [ 符号对照表 ] [ 进制转换 ] [ 经典小工具 ] [ 个税计算 ] [ 汉字简繁转换 ] [ 普通单位换算 ] [ 公制单位换算 ]
[ 生辰老黄历 ] [ 国内电话区号 ] [ 国家代码与域名缩写 ] [ 文字加密解密 ] [ 健康查询 ] [ 万年历 ] [ 手机号码查询 ] [ ip搜索 ] [ Google PR查询 ]
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵