当前位置: 首页 > news >正文

山西推广型网站制作/天津做网站的公司

山西推广型网站制作,天津做网站的公司,服装店网站建设思路,浙江省工程造价信息网计算机等级考试:使用CB控制Windows注册表分类:计算机等级|更新时间:2016-07-07|来源:中华网考试Windows注册表中包含了系统配置、机器硬件配置、Win32应用程序和用户的其他配置信息。注册表根据系统信息分为六个根键(RootKey)&…

计算机等级考试:使用CB控制Windows注册表

分类:计算机等级

|

更新时间:2016-07-07|

来源:中华网考试

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++强大的类库,我们可以很轻松地完成这个工作。

http://www.jmfq.cn/news/4797775.html

相关文章:

  • 团购手机网站怎么做/做谷歌推广比较好的公司
  • 南昌网站制作/品牌广告视频
  • 网站转化怎么做/seo优化关键词排名优化
  • canvas案例网站/响应式模版移动优化
  • 做网站之前的工作/营销百度app下载手机版
  • 做网站背景图片要多大/竞价托管运营哪家好
  • 做网站不需要编程的软件/提升seo排名
  • w7系统那个网站做的好/搜索引擎排名2022
  • 合肥做网站哪家公司好/百度爱企查电话人工服务总部
  • 90设计网是干嘛的/长沙seo招聘
  • 如何在阿里巴巴上做网站/html网页制作步骤
  • 深圳网站建设开发/怎么做一个网站页面
  • 深圳设计网站公司网站/小程序源码网
  • 如何做一个网站赚钱/安卓aso优化工具
  • 给老外做兼职的网站/排名优化培训
  • 无锡网站建设多少钱/google海外版入口
  • 医院响应式网站建设方案/优秀网站设计欣赏
  • 导航网站怎么做seo/网络维护公司
  • 网站开源/山东关键词优化联系电话
  • wordpress添加搜索引擎/广州各区正在进一步优化以下措施
  • 阿里巴巴招聘官网/抖音seo排名优化
  • 做二维码的网站/专业软文平台
  • 网站在线报名怎么做/网站seo诊断工具
  • 专注七星彩网站开发/网站建设报价方案
  • 软件开发资源网站/兰州网络推广新手
  • 外贸网站模板建立/域名注册网站系统
  • html演示网站/广西南宁市有公司网站设计
  • 浅谈政府门户网站建设/全媒体广告代理加盟靠谱吗
  • wordpress最好用的编辑器/搜索引擎优化论文
  • 阿里巴巴网站建设的背景/武汉网站seo公司