科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件Delphi编程访问注册表

Delphi编程访问注册表

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

本文以一个实例为基础,讲解在DelPhi中如何以编程方式对注册表进行修改

作者:ljp 来源:yesky 2007年11月1日

关键字:

  • 评论
  • 分享微博
  • 分享邮件
四、结束语

  在程序中访问注册表的基本方法是:打开注册表、读写注册表、关闭打开的主键。此实例程序本身虽然比较简单,但其访问注册表的方法却比较通用,你可以将此方法灵活运用到其他程序语言中,设计出满足要求的实用程序。其实在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.

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章