在Delphi3.0 及以上版本中,提供了一个构件TRegistry。在程序中可以利用它来实现对WIN95/98/NT 注册表的操作,可以很方便地在注册表中增加、修改和删除键值。这样可以在程序中完成一些特殊的功能。 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
---- 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 的启动而运行
当然,你可以在"启动"程序组中加入程序的快捷方式,但这样做好象不大明智,因为大多数程序在安装时不会这样做,而是在通过在注册表增加键值,让WIN95/98/NT 在启动时运行自己的程序。如果打开注册表,找到HKEY_LOCAL_MACHINE "Software "Microsoft"Windows "CurrentVersion "Run,就会发现这个秘密了,原来许多自动运行的程序都在这里。你也可以在这里增加一个键,让你的程序也随着 WIN95/98/NT 的启动而自己运行,成为WINDOWS 下的TSR 程序。实现方法如下:
首先,在Uses 中加上Registry 单元
然后,写下面代码。
{将程序strExeFileName置为自动启动 }
1
function
StartUpMyProgram ( strPrompt,strExeFileName : string ) : boolean;
2
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
3
var
4
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
5
registerTemp : TRegistry;
6
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
7
begin
8
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
9
registerTemp :
=
TRegistry.Create;
10
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
11
//
建立一个Registry实例
12
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
13
with
registerTemp
do
14
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
15
begin
16
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
17
RootKey:
=
HKEY_LOCAL_MACHINE;
18
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
19
//
设置根键值为HKEY_LOCAL_MACHINE
20
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
21
//
找到Software\Microsoft\Windows\CurrentVersion\Run
22
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
23
if
OpenKey(
'
Software\Microsoft\Windows\CurrentVersion\Run
'
,True)
then
24
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
25
//
写入自己程序的快捷方式信息
26
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
27
begin
28
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
29
WriteString( strPrompt, strExeFileName );
30
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
31
result :
=
true;
32
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
33
end
34
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
35
else
result :
=
false;
36
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
37
//
善后处理
38
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
39
CloseKey;
40
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
41
Free;
42
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
43
end
;
44
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
45
end
;
46
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
47
{
调用StartUpMyProgram,
48
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
49
使Delphi随WINDOWS启动而自动运行
}
50
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
51
procedure
TForm1.Button1Click(Sender: TObject);
52
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
53
begin
54
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
55
memo1.lines.add(
'
开始
'
);
56
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
57
if
StartUpMyProgram(
'
delphi
'
,
'
C:\Program Files\borland\delphi3\bin\delphi32.exe
'
)
then
58
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
59
memo1.lines.add(
'
成功
'
)
60
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
61
else
62
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
63
memo1.lines.add(
'
失败
'
)
64
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
65
end
;
66
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
67
---- 应用之二:实现文件关联
当MS WORD 安装在你的系统中时,它会把.DOC 文件与自己关联,当你双击一个DOC 文件,就会启动MS WORD,打开你指定的DOC文件。你也可以把一个文件类型与一个程序关联起来,其秘密还是在注册表中。如果打开注册表,找到HKEY_CLASSES_ROOT,就会发现这里已经有很多文件类型。
你也可以在这里增加一个键,建立自己的文件关联。
建立文件关联,一般应有两个步骤:
(1)根据文件类型的扩展名,指定对应的键名(如doc 文件对应的键为doc_auto_file)
该键及其子键的值,将定义该类型的文件的类型说明和操作(如打开、编辑)说明
(2)在指定的键名下,建立子键,指明文件类型说明和操作对应的程序信息
例如,我们可以为.DBF 文件建立文件关联,其文件类型说明为"xBase 数据表",使其打开(Open)文件的操作对应程序C:"ProgramFiles"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;
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
var
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
registerTemp : TRegistry;
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
begin
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
registerTemp :
=
TRegistry.Create;
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//
建立一个Registry实例
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
with
registerTemp
do
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
begin
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
RootKey:
=
HKEY_CLASSES_ROOT;
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//
设置根键值为HKEY_CLASSES_ROOT
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//
根据文件类型的扩展名,创建或打开对应的键名.FileExt,如DBF对应
'
.DBF
'
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
if
OpenKey(
'
.
'
+
strFileExtension, true )
then
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
begin
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
result :
=
false;
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
exit;
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
end
;
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//
设置键.FileExt默认值为FileExt_Auto_File,如
'
.DBF
'
对应
'
DBF_Auto_File
'
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
WriteString(
''
,strFileExtension
+
'
_Auto_File
'
);
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
CloseKey;
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//
写入自己程序的信息
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//
根据文件类型的扩展名,创建或打开对应的键名
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
FileExt_Auto_File
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//
'
.DBF
'
对应
'
DBF_Auto_File
'
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
if
OpenKey(strFileExtension
+
'
_Auto_File
'
, true )
then
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
begin
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
result :
=
false;
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
exit;
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
end
;
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//
设置默认值文件类型说明,如DBF可对应
'
xBase数据表
'
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
WriteString(
''
,strDiscription);
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
CloseKey;
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//
创建或打开键名FileExt_Auto_File\Shell\open\command,该键为表示操作为
'
打开
'
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//
'
.DBF
'
对应
'
DBF_Auto_File\shell\open\command
'
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
if
OpenKey(strFileExtension
+
'
_Auto_File\shell\open\command
'
, true )
then
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
begin
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
result :
=
false;
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
exit;
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
end
;
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//
设置该键的默认值为打开操作对应的程序信息
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//
如DBF可对应
'
C:\Program Files\Borland\DBD\DBD32.EXE
'
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
WriteString(
''
,strExeFileName
+
'
%1
'
);
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
CloseKey;
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
Free;
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
end
;
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
end
;
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
{
调用AssignToProgram,使DBF文件与DBD32.EXE关联
}
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
procedure
TForm1.Button3Click(Sender: TObject);
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
begin
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
memo1.lines.add(
'
开始
'
);
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
if
AssignToProgram(
'
DBF
'
,
'
xBase数据表
'
,
'
C:\Program Files\borland\dbd\dbd32.exe
'
)
then
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
memo1.lines.add(
'
成功
'
)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
else
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
memo1.lines.add(
'
失败
'
)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
end
;
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
---- 应用之三:检测Win95/98/NT 系统中是否安装了Borland Database Engine
当你的应用程序是一个基于BDE 的数据库应用程序时,如果运行在一个没有安装BDE 的Win95/98/NT 中,会出现让用户迷惑不解的错误。你可能需要在程序正常运行之前,检查系统中是否安装了BDE。由于 BDE 安装后会在注册表进行注册,你可以通过查询注册表来确定系统中是否安装了BDE,然后决定下一步采取什么行动。BDE 在注册表中的位置为:
HKEY_LOCAL_MACHINE\Software\Borland\Database Engine,该键存在说明 BDE 已经安装。
具体的例子如下。
同样,在Uses 中加上Registry 单元
然后,写下面代码。
{检测系统中是否安装了BDE }
1
function
IsBDEInstalled : boolean;
2
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
3
var
4
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
5
registerTemp : TRegistry;
6
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
7
begin
8
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
9
registerTemp :
=
TRegistry.Create;
10
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
11
//
建立一个Registry实例
12
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
13
with
registerTemp
do
14
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
15
begin
16
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
17
RootKey:
=
HKEY_LOCAL_MACHINE;
18
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
19
//
设置根键值为HKEY_LOCAL_MACHINE
20
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
21
//
查询Software\Borland\Database Engine
22
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
23
result :
=
OpenKey(
'
Software\Borland\Database Engine
'
,false);
24
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
25
//
善后处理
26
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
27
CloseKey;
28
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
29
Free;
30
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
31
end
;
32
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
33
end
;
34
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
35
{
调用IsBDEInstalled,检测系统中是否安装了BDE
}
36
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
37
procedure
TForm1.Button4Click(Sender: TObject);
38
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
39
begin
40
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
41
memo1.lines.add(
'
开始
'
);
42
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
43
if
IsBDEInstalled
then
44
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
45
memo1.lines.add(
'
已安装了BDE
'
)
46
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
47
else
48
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
49
memo1.lines.add(
'
未安装BDE
'
)
50
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
51
end
;
52
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
53
---- 应用之四:在桌面建立程序的快捷方式
当你的WIN95/98/NT 桌面上整齐地排列着各种程序的快捷方式时,也许你会体会到快捷方式的方便。你也可将自己设计的程序的快捷方式放在别人的桌面上。
桌面上的一个快捷方式,对应Windows 目录下Destop 子目录中的一个ShellLink 文件(.LNK),你只要在这个目录下增加一个.LNK 文件就可以了。
我们的任务,主要是利用TRegistry 从注册表中获取Desktop 的实际路径,默认为Windows 目录下的Desktop 子目录,如C:"PWIN98"Desktop。在注册表中Desktop 的实际路径对应的键为HKEY_CURRENT_USER "Software"MicroSoft "Windows "CurrentVersion "Explorer "Shell Folders "Desktop。
同样,在Uses 中加上Registry 单元
然后,写下面代码。
{为程序strExeFileName在桌面建立快捷方式,运行参数为strParameters }
1
function
CreateShortcutOnDesktop( strExeFileName, strParameters : string ) : boolean;
2
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
3
var
4
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
5
registerTemp : TRegistry;
6
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
7
strDesktopDirectory : widestring;
8
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
9
shelllinkTemp : IShellLink;
10
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
11
persistfileTemp : IPersistFile;
12
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
13
begin
14
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
15
registerTemp :
=
TRegistry.Create;
16
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
17
//
建立一个Registry实例
18
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
19
with
registerTemp
do
20
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
21
begin
22
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
23
RootKey:
=
HKEY_CURRENT_USER;
24
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
25
//
设置根键值为HKEY_CURRENT_USER
26
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
27
//
找到Software\MicroSoft\Windows\CurrentVersion\Explorer\Shell Folders
28
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
29
if
not
OpenKey(
'
Software\MicroSoft\Windows\CurrentVersion\Explorer\Shell Folders
'
,True)
then
30
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
31
//
写入自己程序的信息
32
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
33
begin
34
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
35
result :
=
false;
36
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
37
exit;
38
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
39
end
;
40
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
41
//
读取项目Desktop的值,即Desktop的实际路径
42
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
43
strDesktopDirectory :
=
ReadString(
'
Desktop
'
);
44
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
45
//
善后处理
46
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
47
CloseKey;
48
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
49
Free;
50
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
51
end
;
52
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
53
//
设置快捷方式的参数
54
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
55
shelllinkTemp :
=
IShellLink( CreateComObject(CLSID_ShellLink));
56
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
57
with
shelllinkTemp
do
58
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
59
begin
60
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
61
SetPath( PChar( strExeFileName ) );
62
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
63
//
设置程序文件全名
64
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
65
SetArguments( PChar( strParameters) );
66
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
67
//
设置程序的命令行参数
68
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
69
//
设置程序的工作目录
70
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
71
SetWorkingDirectory( Pchar( ExtractFilePath( strExeFileName ) ) );
72
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
73
end
;
74
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
75
//
构造快捷方式的文件名(.LNK)
76
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
77
strDesktopDirectory :
=
strDesktopDirectory
+
'
\
'
+
ExtractFileName( strExeFileName );
78
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
79
strDesktopDirectory :
=
copy( strDesktopDirectory,
1
, length( strDesktopDirectory )
-
length( ExtractFileExt( strExeFileName ) ) )
+
'
.LNK
'
;
80
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
81
//
保存快捷方式的文件
82
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
83
persistfileTemp :
=
shelllinkTemp as IPersistFile;
84
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
85
if
S_OK
=
persistfileTemp.Save( PWChar( strDesktopDirectory ) , false )
then
86
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
87
result :
=
true
//
保存成功,返回True
88
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
89
else
result :
=
false;
90
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
91
end
;
92
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
93
{
调用CreateShortcutOnDesktop,为Delphi在桌面上建立快捷方式
}
94
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
95
procedure
TForm1.Button2Click(Sender: TObject);
96
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
97
begin
98
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
99
memo1.lines.add(
'
开始
'
);
100
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
101
if
CreateShortcutOnDesktop(
'
C:\Program Files\borland\delphi3\bin\delphi32.exe
'
,
'
%1
'
)
then
102
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
103
memo1.lines.add(
'
成功
'
)
104
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
105
else
106
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
107
memo1.lines.add(
'
失败
'
)
108
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
109
end
;
110
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
111
【结语】:上面几个应用只是TRegistry 一些简单的应用,有了这些知识,你就可以根据自己的需要来定制和改善Winodws 系统了。