Delphi的TRegistry注册表类方法详解



●GetDataInfo方法

Function GetDataInfo(const ValueName:String;Var Value:TRegDataInfo):Boolean;

TregDataType=(rdunknown,rdstring,rdexpandstring,rdexpandstring,rdinterger,rdbinary);

TregDataInfo=record

   Regdata:TRegDataType;数据类型

  dataSize:integer;数据大小

end

valuename:和当前键关联的数据值名称

value:返回数据的信息,如为rdstring和rdexpandstring类型,则数据大小包括字符串未尾的空结束字符。

  如果成功返回True,失败返回False,并且Value的值为zeros

rdexpandstring:是一个包含环境变量的字符串;如“%PATH%”。


●CreateKey方法

Function CreateKey(const Key:string):Boolena;

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

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


●DeleteKey方法

Function DeleteKey(const Key:string):Boolean;

  删除一个键及相关联的数据,在win95中子键也将被删除,NT中子键必须一个个删除。


●DeleteValue方法

Function DeleteValue (const Name:string):Boolean;

  删除当前键中指定的一个数据值name。


●GetDataSize方法

Function GetDataSize(const ValueName:string):integer;

  返回当前键中一个指定数值ValueName数据的大小。


●GetDataType方法

Function GetDataType(const Valuename;string):TRegDataType;

  返回当前键中一个指定数值Valuename数据的类型。


●GetKeyInfo方法

Function GetKeyInfo(var value:TRegkeyinfo):Boolean;

  返回当前键的信息,在于value中。

TRegkeyinfo=record

  maxsubkeylen:integer;子键名的最长值(字节)

  numvalues:integer;键值的数量

  maxvaluelen;最长的键值名的长度

  Filetime:TFileTime;最后一次更改的时间

end;


●Getkeynames方法

Procedure Getkeynames(strings:Tsrtings);

  返回当前键所有子键的名子列表串。


●Getvaluenames

Procedure Getvaluenames(strings:Tstrings);

  返回当前键所有键值名的列表串。


●Hassubkeys方法

Function hassubKeys:Boolean;

  判断当前键是否有子键,有返回True,否则返回False。


●keyExists方法

Function KeyExists(const Key:string):Boolean;

  判断指定的键是否存在。


●LoadKey方法

Function LoadKey(const Key,fileNmae:string):Boolean;

 在根键下新建

 从一个文件中加载注册信息到子键中,文件注册信息中包含数据值名、子键和数据。

  LoadKey使创建一个键单一化,子键,键值和数据在一人操作中完成,所有这些称为一组,和单独地创建它们不同应用程序可以在一个文件中读取一组数据,这在用户运行中重新设置有特别的用处。

 Key为要创建子键的名子

 FileName:为文件的位置,所指定的文件必须为以前用SaveKey函数或RegSaveKey API函数所建立的,文件名不能包括扩展名。


●OpenKey方法

Function OpenKey(const Key:string;cancreate:Boolean):Boolean;

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

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

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


●OpenKeyReadOnly方法

function OpenKeyReadOnly(const Key: String): Boolean;

  以只读的方式打开Key值指定的键。


●CloseKey方法

procedure CloseKey;

  当不再使用一个键时应用该方法关闭该键。


●MoveKey方法

procedure MoveKey(const OldName, NewName: String; Delete: Boolean);

  该方法移动或复制一个键到一个新的位置,并把键的名子改为NewName。

  在Win95/98下该的子键和数据将被一起移动或复制到新的位置,在NT下子键必须用MoveKey明确的移动或自制。


●读取数据的方法

function ReadBinaryData(const Name: String; var Buffer; BufSize: Integer):Integer;

function ReadBool(const Name: String): Boolean;

function ReadCurrency(const Name: String): Currency;

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;

  以上方法从当前主键读取相应数据类型的键值的数据,如果类型不匹配将产生一个异常。


●RegistryConnect方法

function RegistryConnect(const UNCName: String): Boolean;

 与另一台计算机的注册表建立连接,在建立连接前应将Rootkey属性设为HKEY_USERS或HKEY_LOCAL_MACHINE。

 UNCName是另一台计算机的名子。格式如:\\computername

 假如UNCName为nil,将打开本地计算机。