Delphi 中注册表操作类TRegistry使用方法




{XP win7 等系统中 注册表中的主键}
HKEY_CLASSES_ROOT    {文件类型信息} 
HKEY_CURRENT_USER    {当前用户信息,也是 RootKey 的默认值}
HKEY_LOCAL_MACHINE   {软硬件信息}
HKEY_USERS           {所有用户信息} 
HKEY_CURRENT_CONFIG  {当前配置信息}

delphi2010中的方法 属性
constructor Create; overload;
    constructor Create(AAccess: LongWord); overload;
    destructor Destroy; override;
    procedure CloseKey;
    function CreateKey(const Key: string): Boolean;
    function DeleteKey(const Key: string): Boolean;
    function DeleteValue(const Name: string): Boolean;{ 删除键值}
    function GetDataAsString(const ValueName: string; PrefixType: Boolean = false): string;
    function GetDataInfo(const ValueName: string; var Value: TRegDataInfo): Boolean;
    function GetDataSize(const ValueName: string): Integer;
    function GetDataType(const ValueName: string): TRegDataType;
    function GetKeyInfo(var Value: TRegKeyInfo): Boolean;
    procedure GetKeyNames(Strings: TStrings);
    procedure GetValueNames(Strings: TStrings);
    function HasSubKeys: Boolean;
    function KeyExists(const Key: string): Boolean;
    function LoadKey(const Key, FileName: string): Boolean;
    procedure MoveKey(const OldName, NewName: string; Delete: Boolean);
    function OpenKey(const Key: string; CanCreate: Boolean): Boolean;
    function OpenKeyReadOnly(const Key: String): Boolean;
    function ReadCurrency(const Name: string): Currency;
    function ReadBinaryData(const Name: string; var Buffer; BufSize: Integer): Integer;
    function ReadBool(const Name: string): Boolean;
    function ReadDate(const Name: string): TDateTime;
    function ReadDateTime(const Name: string): TDateTime;
    function ReadFloat(const Name: string): Double;
    function ReadInteger(const Name: string): Integer;
    function ReadString(const Name: string): string;
    function ReadTime(const Name: string): TDateTime;
    function RegistryConnect(const UNCName: string): Boolean;
    procedure RenameValue(const OldName, NewName: string);
    function ReplaceKey(const Key, FileName, BackUpFileName: string): Boolean;
    function RestoreKey(const Key, FileName: string): Boolean;
    function SaveKey(const Key, FileName: string): Boolean;
    function UnLoadKey(const Key: string): Boolean;
    function ValueExists(const Name: string): Boolean;
    procedure WriteCurrency(const Name: string; Value: Currency);
    procedure WriteBinaryData(const Name: string; var Buffer; BufSize: Integer);
    procedure WriteBool(const Name: string; Value: Boolean);
    procedure WriteDate(const Name: string; Value: TDateTime);
    procedure WriteDateTime(const Name: string; Value: TDateTime);
    procedure WriteFloat(const Name: string; Value: Double);
    procedure WriteInteger(const Name: string; Value: Integer);
    procedure WriteString(const Name, Value: string);
    procedure WriteExpandString(const Name, Value: string);
    procedure WriteTime(const Name: string; Value: TDateTime);
    property CurrentKey: HKEY read FCurrentKey;
    property CurrentPath: string read FCurrentPath;
    property LazyWrite: Boolean read FLazyWrite write FLazyWrite;
    property LastError: Longint read FLastError;
    property LastErrorMsg: string read GetLastErrorMsg;
    property RootKey: HKEY read FRootKey write SetRootKey;
    property RootKeyName: string read GetRootKeyName;
    property Access: LongWord read FAccess write FAccess;




{Delphi TRegistry类的方法}

1.Create

2.CreateKey  创建一个键


函数原型:function CreateKey(const Key: String):Boolean;


新建一个名为Key的键,Key可以为绝对的或相对的名字,绝对名用反斜杠开头,相对名是新建一个当前键的子键,新建没有值。


成功返回True,否则返回False,如果该键已存在将不产生效果。


3.DeleteKey 删除键
函数原型:Function DeleteKey(const Key:string):Boolean;删除一个键及相关联的数据。
4.OpenKey 打开键


函数原型:Function OpenKey(const Key:string;cancreate:Boolean):Boolean;

使用该函数可以指定一个键作为当前键,如果键为空,则当前键将设置为根键。

Cancreate决定是否在指定键不存在时创建该键,默认为false不创建新键,该函数创建的键的键值将不确定。

如果成功地打开或创建,该函数返回True。


5.CloseKey 关闭键
函数原型:procedure CloseKey; 
当不再使用一个键时应用该方法关闭该键。
6.keyExists方法  判断键是否存在
函数原型:Function KeyExists(const Key:string):Boolean;判断指定的键是否存在,存在返回true,否则返回false。
7.Hassubkeys 判断是否有子键
函数原型:Function hassubKeys:Boolean;判断当前键是否有子键,有返回True,否则返回False。
8.DeleteValue  删除值
函数原型:Function DeleteValue (const Name:string):Boolean;删除当前键中指定的一个数据值name。
9.GetDataSize 获取值大小
函数原型:Function GetDataSize(const ValueName:string):integer;返回当前键中一个指定数值ValueName数据的大小。
10.GetDataType 获取值数据类型
函数原型:Function GetDataType(const Valuename;string):TRegDataType;返回当前键中一个指定数值Valuename数据的类型。
11.GetKeyInfo方法
函数原型:Function GetKeyInfo(var value:TRegkeyinfo):Boolean;返回当前键的信息,在于value中。
TRegkeyinfo=record
  maxsubkeylen:integer;子键名的最长值(字节)
  numvalues:integer;键值的数量
  maxvaluelen;最长的键值名的长度
  Filetime:TFileTime;最后一次更改的时间
end;
12.Getkeynames方法 返回所有子键
函数原型:Procedure Getkeynames(strings:Tsrtings);返回当前键所有子键的名子列表串。
13.Getvaluenames 返回当前所欲键值名
函数原型:Procedure Getvaluenames(strings:Tstrings);返回当前键所有键值名的列表串。
14.LoadKey方法
Function LoadKey(const Key,fileNmae:string):Boolean;
在根键下新建
从一个文件中加载注册信息到子键中,文件注册信息中包含数据值名、子键和数据。
LoadKey使创建一个键单一化,子键,键值和数据在一人操作中完成,所有这些称为一组,和单独地创建它们不同应用程序可以在一个文件中读取一组数据,这在用户运行中重新设置有特别的用处。
Key为要创建子键的名子
FileName:为文件的位置,所指定的文件必须为以前用SaveKey函数或RegSaveKey API函数所建立的,文件名不能包括扩展名。
15.OpenKeyReadOnly方法
function OpenKeyReadOnly(const Key: String): Boolean;
以只读的方式打开Key值指定的键。
16.MoveKey方法
procedure MoveKey(const OldName, NewName: String; Delete: Boolean);
该方法移动或复制一个键到一个新的位置,并把键的名子改为NewName。
在Win95/98下该的子键和数据将被一起移动或复制到新的位置,在NT下子键必须用MoveKey明确的移动或自制。
17.RegistryConnect方法
function RegistryConnect(const UNCName: String): Boolean;
与另一台计算机的注册表建立连接,在建立连接前应将Rootkey属性设为HKEY_USERS或HKEY_LOCAL_MACHINE。
UNCName是另一台计算机的名子。格式如://computername