Delphiç¨åºä¸å¯å©ç¨TRegistry对象æ¥åå注å表æ件ä¸çä¿¡æ¯ã
ä¸ãå建åéæ¾TRegistry对象
1.å建TRegistry对象ã为äºæä½æ³¨å表ï¼è¦å建ä¸ä¸ªTRegistry对象ï¼ARegistry := TRegistry.Createï¼
2.éæ¾TRegistry对象ã对注å表æä½ç»æåï¼åºéæ¾TRegistry对象æå å
åï¼ARegistry.Destroyã
äºãæå®è¦æä½çé®
æä½æ³¨å表æ¶ï¼é¦å
åºæå®æä½ç主é®ï¼å
ç»å±æ§RootKeyèµå¼ä»¥æå®æ ¹é®ï¼ç¶åç¨æ¹æ³OpenKeyæ¥æå®è¦æä½ç主é®åã
1.æå®æ ¹é®(RootKey)ã
æ ¹é®æ¯æ³¨å表çå
¥å£ï¼ä¹æ³¨å表信æ¯çåç±»ï¼å
¶å¼å¯ä¸ºï¼
HKEYâCLASSESâROOTï¼åå¨æ´ä¸ªç³»ç»å¯¹è±¡ç±»ä¿¡æ¯ï¼å¦ActiveX对象注åãæ件å
³èçä¿¡æ¯ã
HKEYâCURRENTâUSERï¼åå¨å½åç¨æ·çé
置信æ¯ã为å±æ§RootKeyçé»è®¤å¼ã
HKEYâLOCALâMACHINEï¼åå¨å½åç³»ç»ç软硬件é
置信æ¯ãåºç¨ç¨åºèªå·±çä¿¡æ¯å¯ä»¥åå¨å¨è¯¥æ ¹é®ä¸ã
HKEYâUSERSï¼åå¨ææç¨æ·éç¨çé
置信æ¯ã
è¿å¯ä»¥æ¯HKEYâCURRENTâCONFIGãHKEYâDYNâDATAã
2.æå®è¦æä½ç主é®ã
Function OpenKey(const Key: string; CanCreate: Boolean): Boolean;
Keyï¼ä¸»é®åï¼æ¯é®åå
¨åä¸é¤å»æ ¹é®çé¨åï¼å¦Software\Borland\Delphiã
CanCreateï¼å¨æå®ç主é®åä¸åå¨æ¶ï¼æ¯å¦å
许å建该主é®ï¼True表示å
许ã
è¿åå¼True表示æä½æåã
3.å
³éå½å主é®ã
å¨è¯»åæåå¨ä¿¡æ¯ä¹åï¼åºåæ¶å°å
³éå½å主é®ï¼procedure CloseKeyã
ä¸ãä»æ³¨å表ä¸è¯»åä¿¡æ¯
Readç³»åæ¹æ³ä»æ³¨å表读åæå®çä¿¡æ¯ï¼å符串ãäºè¿å¶ååå
è¿å¶ï¼ï¼å¹¶è½¬æ¢ä¸ºæå®çç±»åã
1.Readç³»åæ¹æ³ã
function ReadString(const Name: string): string;
读åä¸ä¸ªå符串å¼ï¼Name为å符串å称ã
function ReadInteger(const Name: string): Integer;
读åä¸ä¸ªæ´æ°å¼ï¼Name为æ´æ°å称ã
function ReadBinaryData(const Name: string; var Buffer; BufSize: Integer):Integer;
读åäºè¿å¶å¼ï¼Name为äºè¿å¶å¼å称ï¼Buffer为æ¥æ¶ç¼å²åºï¼BufSize为ç¼å²åºå¤§å°ï¼è¿å为å®é
读åçåèæ°ã
å
¶å®æ¹æ³è¿æï¼ReadBoolãReadCurrencyãReadDateãReadDateTimeãReadFloatãReadTimeã
2.读åä¿¡æ¯ä¸ä¾ï¼æ¾ç¤ºWindowsççæ¬ï¼ã
å¨HKEYâLOCALâMACHINE\Software\Microsoft\Windows\CurrentVersionä¸ï¼æä¸ä¸ªå符串å¼VersionãVersionNumberåSubVersionNumberï¼ç¨äºè®°å½å½åWindowsççæ¬å·ã
{请å¨Usesä¸å
å«Registryåå
}
procedure TForm1.Button1Click(Sender:TObject);
var
ARegistry : TRegistry;
begin
ARegistry := TRegistry.Create;
//建ç«ä¸ä¸ªTRegistryå®ä¾
with ARegistry do
begin
RootKey := HKEYâLOCALâMACHINE;//æå®æ ¹é®ä¸ºHKEYâLOCALâMACHINE
//æå¼ä¸»é®Software\Microsoft\Windows\CurrentVersion
if OpenKey( â²Software\Microsoft\Windows\CurrentVersionâ²,false ) then
begin
memo1.lines.add('Windowsçæ¬ï¼â²ï¼ ReadString(â²Versionâ²));
memo1.lines.add('Windowsçæ¬å·ï¼â²ï¼ ReadString(â²VersionNumberâ²));
memo1.lines.add(â²Windowsåçæ¬å·ï¼â²ï¼ ReadString(â²SubVersionNumberâ²));
end;
CloseKey;//å
³é主é®
Destroy;//éæ¾å
å
end;
end;
åãå注å表ä¸åå
¥ä¿¡æ¯
Writeç³»åæ¹æ³å°ä¿¡æ¯è½¬å为æå®çç±»åï¼å¹¶åå
¥æ³¨å表ã
1.Writeç³»åæ¹æ³ã
procedure WriteString(const Name, Value: string);
åå
¥ä¸ä¸ªå符串å¼ï¼Name为å符串çå称ï¼Value为å符串å¼ã
procedure WriteInteger(const Name: string; Value: Integer);
åå
¥ä¸ä¸ªæ´æ°å¼ã
procedure WriteBinaryData(const Name: string; var Buffer; BufSize: Integer);
åå
¥äºè¿å¶å¼ï¼Name为äºè¿å¶å¼çå称ï¼Buffer为å
å«äºè¿å¶å¼çç¼å²åºï¼BufSize为ç¼å²åºå¤§å°ã
å
¶å®æ¹æ³è¿æï¼WriteBoolãWriteCurrencyãWriteDateãWriteDateTimeãWriteFloatãWriteTimeã
2.åå
¥ä¿¡æ¯ä¸ä¾ã
ä¸é¢ç¨åºä½¿DelphiéWindowså¯å¨èèªå¨è¿è¡ã
var
ARegistry : TRegistry;
begin
ARegistry := TRegistry.Create;
//建ç«ä¸ä¸ªTRegistryå®ä¾
with ARegistry do
begin
RootKey:=HKEYâLOCALâMACHINE;
if OpenKey(â²Software\Microsoft\Windows\CurrentVersion\Runâ²,True) then
WriteString(â²delphiâ²,â²C:\Program Files\borland\delphi3\bin\delphi32.exeâ²);
CloseKey;
Destroy;
end;
end;
äºãé®å¼ç»´æ¤
é¤äºå¨æ³¨å表ä¸è¯»åãåå¨å¤ï¼ç¨åºå¯è½è¿éè¦å¢å 主é®ãå é¤ä¸»é®ã主é®æ¹åãæ°æ®å¼æ¹åçã
1.å建æ°ä¸»é®ï¼function CreateKey(const Key: string): Booleanã
Keyå³ä¸ºä¸»é®åï¼è¿åå¼True表示æä½æåã
2.å é¤ä¸»é®ï¼function DeleteKey(const Key: string): Booleanã
Keyå³ä¸ºä¸»é®åï¼è¿åå¼True表示æä½æåã
3.å¤å¶æ移å¨ä¸»é®ï¼procedure MoveKey(const OldName, NewName: string; Delete: Boolean)ã
OldNameãNewNameåå«è¡¨ç¤ºæºä¸»é®ååç®æ 主é®åï¼Delete表示æ¯å¦å é¤æºä¸»é®ï¼True表示å é¤ï¼False表示ä¿çã
å¤å¶æ移å¨ä¸ä¸ªä¸»é®å°å¤å¶æ移å¨è¯¥åé®ä¸çæææ°æ®å¼ååé®å
容ã
4.å¤ææå®ä¸»é®æ¯å¦åå¨ï¼å
¶ä¸æ¯å¦æ主é®ï¼å¹¶è·å主é®å称ã
KeyExistsç¨äºå¤ææå®ä¸»é®æ¯å¦åå¨ï¼
function KeyExists(const Key: string): Boolean;//è¿åå¼ä¸ºTrue表示主é®åå¨ã
HasSubKeysç¨äºå¤ææå®ä¸»é®ä¸æ¯å¦æåé®ï¼function HasSubKeys: Boolean;
è¿åå¼ä¸ºTrue表示主é®ä¸æåé®ã
GetKeyNamesç¨äºè·ååé®å称ï¼procedure GetKeyNames(Strings: TStrings);
Stringsç¨äºè¿åå½å主é®ä¸ååé®çå称ã
5.è·å主é®ä¸çæ°æ®å¼å称ï¼procedure GetValueNames(Strings: TStrings)ã
Stringsç¨äºè¿åå½å主é®ä¸åæ°å¼å称ã
å¦è¦è·åå½åç³»ç»ä¸çæ¨å·è¿æ¥å称ï¼å¯å©ç¨è·å主é®HKEYâUSERS \.DEFAULT\RemoteAccess\Addressesä¸çæ°å¼å称çæ¹æ³æ¥è¿è¡ã
6.å¤ææ°å¼å称åå¨ãæ°å¼å称æ¹åã
ValueExistsç¨äºå¤ææ°å¼å称æ¯å¦åå¨ï¼
function ValueExists(const Name: string): Boolean;
è¿åå¼ä¸ºTrue表示æ°å¼å称åå¨ã
RenameValueç¨äºæ°å¼å称æ¹åï¼
procedure RenameValue(const OldName, NewName: string);
以ä¸æ¯æ³¨å表常ç¨æä½æ对åºçTRegistryçæ¹æ³åå±æ§ï¼å
¶å®æ¹æ³åå±æ§è¯·åè§Delphièæºå¸®å©æ件ã
温馨提示:内容为网友见解,仅供参考