程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> Delphi編程訪問注冊表(6)

Delphi編程訪問注冊表(6)

編輯:Delphi

begin

if readinteger('NoDrives')=1 then //讀取NoDrives的值,若為1,則將A_check設為選中。

A_check.Checked:=true;

if readinteger('NoDrives')=2 then//讀取NoDrives的值,若為2,則將B_check設為選中。

B_check.Checked:=true;

if readinteger('NoDrives')=3 then//讀取NoDrives的值,若為3,則將兩個復選框均選中。

begin

A_check.Checked:=true;

B_check.Checked:=true;

end;

myreg.CloseKey;

myreg.Free;

end;

end;

end;

6、將以上程序保存為Hide_drive,然後編譯成可執行程序Hide_Drive.exe即可。此程序在Win2000和Delphi5中運行通過。操作時隱藏了驅動器,請重新注銷Windows即可看到實際效果。

四、結束語

在程序中訪問注冊表的基本方法是:打開注冊表、讀寫注冊表、關閉打開的主鍵。此實例程序本身雖然比較簡單,但其訪問注冊表的方法卻比較通用,你可以將此方法靈活運用到其他程序語言中,設計出滿足要求的實用程序。其實在DelPhi中,Tregistry類為我們提供了更多更豐富的方法來操作注冊表,但操作的方法仍然是一樣的,希望通過本文的實例,能為廣大Delphi愛好者或程序設計愛好者提供一點幫助。

附:為了使大家能對此程序有一個完整的了解,下面附上源程序,請大家指教!

unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons,Registry; // 此處加上Registry,才能使程序訪問注冊表
type
TForm1 = class(TForm)
A_Check: TCheckBox;
B_Check: TCheckBox;
Bit_all: TBitBtn;
Bit_cancel: TBitBtn;
Bit_hide: TBitBtn;
GroupBox1: TGroupBox;
procedure Bit_allClick(Sender: TObject);
procedure Bit_cancelClick(Sender: TObject);
procedure Bit_hideClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Bit_allClick(Sender: TObject);
begin
a_check.Checked:=true;
b_check.Checked:=true;
end;
procedure TForm1.Bit_cancelClick(Sender: TObject);
begin
a_check.Checked:=false;
b_check.Checked:=false;
end;
procedure TForm1.Bit_hideClick(Sender: TObject);
var myreg:TRegistry;
temp1,temp2,myval:integer;
begin
temp1:=0;
temp2:=0;
myval:=0;
myreg:=TRegistry.Create;
with myreg do
begin
rootkey:=HKEY_LOCAL_MacHINE;
if openkey('SOFTWARE\Microsoft\Windows\CurrentVersion\PolicIEs\explorer',true) then
begin
case form1.A_Check.Checked of
true:
temp1:=1;
end;
case form1.B_Check.Checked of
true:
temp2:=2;
end;
myval:=temp1+temp2;
WriteInteger('NoDrives',myval);
myreg.CloseKey;
myreg.Free;
end;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
var myreg:TRegistry;
begin
myreg:=TRegistry.Create;
with myreg do
begin
rootkey:=HKEY_LOCAL_MacHINE;
if openkey('SOFTWARE\Microsoft\Windows\CurrentVersion\PolicIEs\explorer',true) and ValueExists('NoDrives') then
begin
if readinteger('NoDrives')=1 then
A_check.Checked:=true;
if readinteger('NoDrives')=2 then
B_check.Checked:=true;
if readinteger('NoDrives')=3 then
begin
A_check.Checked:=true;
B_check.Checked:=true;
end;
myreg.CloseKey;
myreg.Free;
end;
end;
end;
end.

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved