在Delphi3.0及以上版本中,提供了一个构件Tregistry。在程序中可以利用它来实现对WIN 95/98/NT注册表的操作,可以很方便地在注册表中增加、修改和删除键值.这样可以在程序中完成一些特殊的功能。
TRegistry常用的属性和方法有(具体作用和用法请参考Delphi帮助):
RootKey、CreateKey、OpenKey、CloseKey、DeleteKey、
ReadXXXX、WriteXXXX(XXXX表示数据类型如String、Integer等)
我们用到的属性和方法有:
RootKey:注册表的根键名(如HKEY_LOCAL_MACHINE等)
OpenKey( KeyName:string; CanCreate:boolean ):
使当前键为KeyName,CanCreate表示当指定的键不存在时是否创建,True表示创建
SetKey( KeyName,KeyValue : string ):使键KeyName的值为KeyValue
应用之一:让自己的程序随WIN95/98/NT的启动而运行
当然,你可以在"启动"程序组中加入程序的快捷方式,但这样做好像不大明智,因为大多数程序在安装时不会这样做,而通过在注册表增加键值,让WIN 95/98/NT在启动时运行自己的程序.如果打开注册表,找到HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run,就会发
现这个秘密了,原来许多自动运行的程序都在这里.你也可以在这里增加一个键,让你的程序也随着WIN95/98/NT的启动而自己运行,成为WINDOWS下的TSR程序.实现方法如下:
首先,在Uses中加上Registry单元。然后,写下面代码.
{ 将程序strExeFileName置为自动启动 }
function StartUpMyProgram( strPrompt,strExeFileName : string ) : boolean;
var
registerTemp : TRegistry;
begin
registerTemp := TRegistry.Create; //建立一个Registry实例
with registerTemp do
begin
RootKey:=HKEY_LOCAL_MACHINE;//设置根键值为HKEY_LOCAL_MACHINE
//找到Software\Microsoft\Windows\CurrentVersion\Run
if OpenKey('Software\Microsoft\Windows\CurrentVersion\Run',True) then
//写入自己程序的快捷方式信息
begin
WriteString( strPrompt, strExeFileName );
result := true;
end
else result := false;
//善后处理
CloseKey;
Free;
end;
end;
{ 调用StartUpMyProgram,使Delphi随WINDOWS启动而自动运行 }
procedure TForm1.Button1Click(Sender: TObject);
begin
memo1.lines.add('开始');
if StartUpMyProgram('delphi','C:\Program Files\borland\delphi3\bin\delphi32.exe') then
memo1.lines.add('成功')
else
memo1.lines.add('失败')
end;
应用之二:实现文件关联
当MS WORD安装在你的系统中时,它会把.DOC文件与自己关联,当你双击一个DOC文件,就会启动MS WORD,打开你指定的DOC文件.你也可以把一个文件类型与一个程序关联起来,其秘密还是在注册表中.如果打开注册表,找到HKEY_CLASSES_ROOT,就会发现这里已经有很多文件类型。你也可以在这里增加一个键,建立自己的文件关联.
建立文件关联,一般应有两个步骤:
(1)根据文件类型的扩展名,指定对应的键名(如doc文件对应的键为doc_auto_file),该键及其子键的值,将定义该类型的文件的类型说明和操作(如打开、编辑)说明。
(2)在指定的键名下,建立子键,指明文件类型说明和操作对应的程序信息
例如,我们可以为.DBF文件建立文件关联,其文件类型说明为"xBase数据表",使其打开(Open)文件的操作对应程序C:\Program Files\Borland\DBD\DBD32.EXE.首先,应在注册表的根键HKEY_CLASSES_ROOT下建立一个键,键名为.DBF,默认值为DBF_Auto_File,表示DBF类型文件的关联操作信息记录在键HKEY_CLASSES_ROOT\DBF_Auto_File下;然后,建立键HKEY_CLASSES_ROOT\DBF_Auto_File,并设其默认值为"xBase数据表",表示文件类型说明;再建立键HKEY_CLASSES_ROOT\DBF_Auto_File\Shell\open\command,设置其默认值为C:\Program Files\Borland\DBD\DBD32.EXE %1(其中"%1"为命令行参数),表示打开操作对应的程序信息。
具体实现如下:
同样,在Uses中加上Registry单元,然后,写下面代码.
{ 将文件类型strFileExtension与程序strExeFileName相关联,strDiscription为文件类型说明 }
function AssignToProgram( strFileExtension,strDiscription,strExeFileName : string ) : boolean;
var
registerTemp : TRegistry;
begin
registerTemp := TRegistry.Create; //建立一个Registry实例
with registerTemp do
begin
RootKey:=HKEY_CLASSES_ROOT;//设置根键值为HKEY_CLASSES_ROOT













电话咨询
在线咨询
公司线路