讀取
●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 刪除一個鍵及相關聯的資料,在win95中子鍵也將被刪除,NT中子鍵必須一個個刪除。
Function DeleteKey(const Key:string):Boolean;
●DeleteValue 刪除當前鍵中指定的一個資料值name。
Function DeleteValue (const Name:string):Boolean;
●GetDataSize 返回當前鍵中一個指定數值ValueName資料的大小。
Function GetDataSize(const ValueName:string):integer;
●GetDataType 返回當前鍵中一個指定數值Valuename資料的類型。
Function GetDataType(const Valuename;string):TRegDataType;
●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 判斷當前鍵是否有子鍵,有返回True,否則返回False。
Function hassubKeys:Boolean;
●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 以唯讀的方式打開Key值指定的鍵。
function OpenKeyReadOnly(const Key: String): Boolean;
●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,將打開本地電腦。
寫入procedure TForm1.readClick(Sender: TObject); Var myReg: TRegistry; begin try myReg := TRegistry.Create; myReg.RootKey := HKEY_LOCAL_MACHINE; if myReg.OpenKey('SOFTWARE\myApp', FALSE) then begin txtName.Text := myReg.ReadString('My Name'); Form1.Top := myReg.ReadInteger('PosY'); Form1.Left := myReg.ReadInteger('PosX'); end; finally myReg.Free; end; end;
一些函式說明procedure TForm1.writeClick(Sender: TObject); Var myReg: TRegistry; begin try myReg := TRegistry.Create; myReg.RootKey := HKEY_LOCAL_MACHINE; if myReg.OpenKey('SOFTWARE\myApp\', TRUE) then begin myReg.WriteString('My Name', txtName.Text); myReg.WriteInteger('PosY', Form1.Top); myReg.WriteInteger('PosX', Form1.Left); end; finally myReg.Free; end; end;
●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 刪除一個鍵及相關聯的資料,在win95中子鍵也將被刪除,NT中子鍵必須一個個刪除。
Function DeleteKey(const Key:string):Boolean;
●DeleteValue 刪除當前鍵中指定的一個資料值name。
Function DeleteValue (const Name:string):Boolean;
●GetDataSize 返回當前鍵中一個指定數值ValueName資料的大小。
Function GetDataSize(const ValueName:string):integer;
●GetDataType 返回當前鍵中一個指定數值Valuename資料的類型。
Function GetDataType(const Valuename;string):TRegDataType;
●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 判斷當前鍵是否有子鍵,有返回True,否則返回False。
Function hassubKeys:Boolean;
●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 以唯讀的方式打開Key值指定的鍵。
function OpenKeyReadOnly(const Key: String): Boolean;
●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,將打開本地電腦。