| 网站首页 | 绿色软件 | 安全中心 | 屏保中心 | 源码中心 | 电子书库 | 教程库 | 图片库 | 资料库 | 论坛 | 笑话 | 手机 | 算命 | 绿站旧版 | 返回总部 | 
您现在的位置: 绿色软件站 >> 教程库 >> 绿化室 >> 绿化相关 >> REG知识 >> 文章正文
C++Builder中注册表的操作           ★★★
C++Builder中注册表的操作
作者:佚名 文章来源:onegreen.net 点击数: 更新时间:2008-5-13 0:07:32

首先,先介绍一下TRegistry的属性和方法:

TRegistry类一共有四个属性。

属性类型描述CurrentKeyint包含当前键值的值,但它的意思不太好懂,所以不太常用RootKeyint当前键值的根键,BCB定义有枚举常量:HKEY_CURRENT_USER、HKEY_CLASSES_ROOT、HKEY_LOCAL_MACHINE、HKEY_USERS、HKEY_CURRENT_CONFIG、HKEY_DYN_DATA、HKEY_USERS。分别对应注册表中相应的主键。生成一个TRegistry类的实例时RootKye缺省值为HKEY_CURRENT_USERCurrentPathAnsiString当前键值的文本描述,\HKEY_CURRENT_USER\Software\Borland的CurrentPath="Software\Borland",而RootKey=HKEY_CURRENT_USERLazyWritebool值为true:只要关闭一个键,就立即返回应用程序。值为false:必须写完注册表后才返回。其缺省值为true。

TRegistry类的方法比较多,择其常用的简要说明如下:

方法描述CloseKey()关闭一个键值并向键值写数据,只要对键值操作完毕后就应该关闭它,不过你可以不必调用此方法,因为TRegistry的析构函数会自动调用它。DeleteKey(AnsiString)删除? ,参数为要删除的键值,如果参数为空字符串,则删除当前键值OpenKey(Ansistring,bool)打开一个键值,如果这个键值不存在,将由第二个参数决定是否自动建立。LoadKey(AnsiString,AnsiString)从文件装入键值,第一个参数为键值,第二个参数为文件名KeyExists(AnsiString)检测一个键值是否存在。SaveKey(AnsiString,AnsiString)把一个键值保存到文件,参数说明参见LoadKey()ReadInteger(AnsiString)读出一个键值为整数,如果失败将抛出异常。同此函数类似的还有ReadBool()、ReadString()、ReadFloat()、ReadDateTome()、ReadBinaryData()等,用来读出不同类型的键值。ValueExists(AnsiString)检测一个值是否存在。WriteInteger(AnsiString,int)写一个键值为整数,如果失败将抛出异常。同此函数类似的还有WriteBool()、WriteString()、WriteFloat()、WriteDateTome()、WriteBinaryData()等,用来写入不同类型的键值。

利用TRegistry是很容易的,一般来说,有以下四步操作:

1) 建立TRegistry类

2)利用OpenKey()方法打开一个键值

3)用ReadType()和WriteType()读写键值

4)调用CloseKey()关闭一个键值。

值得注意的是:在使用TRegistry类时,必须要加入此类的头文件:#include$#@60;Rgistry.hpp$#@62;,否则会发生什么,只要稍有C语言基础都会明白。

好了,举一个实例来说明,下面我就以我的《WinNT自动登录》来说明TRegistry类的用法。

WinNT的用户都知道,WinNT在启动时需要按Ctrl+Alt+Del登录,即便没有密码也是如此.虽然WinNT不会象 WIN9X那样经常死机,但每次开机都要这样还是有点烦.能 不能让WinNT每次启动自动登录呢?其实只要把注册表的一 个属性AutoAdminLogon的值设置为"1"即可,可惜的是这 样做只能管一次,每次启动后WinNT就会自动把它的值改为 "0"(该死的Bill!).如果每次都要修改注册表,还不如每次手动登录呢!写个程序在启动后自动修改这个值就OK了。

首先新建一个工程,在窗体放入4个文本框,分别命名为:dUser、edPasswd、edRePasswd、edDomain。分别用来输入用户名、登录口令、重输口令和域,把edPasswd和edRePasswd的PasswordChar属性改为"*"(密码方式输入)。再加入2个复选框来选择是否自动登录(chkAuto)和自动运行(chkAutorun),一个定时器(Timer1),2个按纽(bbtOK、bbtCancel)和一些Label。 

打开代码窗口,在头部输入以下代码:

#include TRegistry ®key=* new TRegistry();//定义全局变量:注册表类。 int delay=0;//定义全局变量,延时时间

然后选择窗体的OnCreat事件,输入以下代码:

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

regkey.RootKey=HKEY_LOCAL_MACHINE;//设置根键 //打开自动登录所在的键

regkey.OpenKey("SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon",true);

//以下3句打开Windows自动运行的键值。 TRegistry &AutoRun=* new TRegistry(); AutoRun.RootKey=HKEY_LOCAL_MACHINE;

AutoRun.OpenKey("SOFTWARE

[1] [2] [3] 下一页

文章录入:onegreen    责任编辑:onegreen 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口


    相 关 信 息
    最 新 文 章
    热点推荐
    最 新 热 门
    最 新 推 荐
    相 关 文 章
    利用WindowsAPI函数和注册表获取系统信息
    MS-DOS方式下对注册表的编程
    用注册表给应用程序加口令
    用VB函数轻松访问系统注册表
    在VB中调用API操作注册表
    VB4.0对注册表操作的命令
    注册表数据结构(一)
    注册表数据类型(二)
    注册表中几个对编程特别有用的地方
    系统瘦身:修改注册表删除多余“脂肪”