ue);
需要注意的是:快捷方式应该使用Unicode存储,所以必须调用PWChar()函数将其转换。
二、编程示例
下面,让我们用Delphi6来编程实现一个简单的示例程序。程序的功能如下:你可以在窗口的三个文本框中输入源程序的位置(也可以通过浏览按钮来实现)、程序组名称和快捷方式名称,通过下拉框来选择快捷方式的存放位置,单击“创建”按钮可以创建程序组和快捷方式了。是不是很酷?心动不如行动,让我们一步一步来实现。
1、 启动Delphi6.0,打开一个新的标准工程。在窗体中添加所需的控件。
首先向窗体中添加四个Label对象、三个Edit对象、一个下拉框对象ComboBox1、三个Button对象和一个OpenDialog对象。依次设置其相关属性等,调整后的窗体界面如图1所示。
<P><IMG BORDER="0" SRC=/uploadfile/201210/12/3A02231502.jpg" WIDTH="412" HEIGHT="292"></P>
2、 向Tform1对象中新增一个函数:
function CreateShortcut(SourceFileName : string; file://源程序的位置
ShortcutName : string; file://快捷方式的名称
ShortcutLocation : ShortcutType; file://快捷方式的建立位置
SubDirectory : string file://程序组的名称
):Boolean;
其中ShortcutType是程序中自定义的一个枚举类:
type
ShortcutType=(_DESKTOP, file://桌面
_STARTMENU, file://开始菜单
_PROGRAMS, file://程序
_STARTUP, file://启动
_QUICKLAUNCH file://快速启动栏
);
CreateShortcut()函数用于实现快捷方式和程序组的创建,如果创建成功,则返回一个真值(True),否则返回为假值(False)。这可是本文中最重要的代码段哟!
function TForm1.CreateShortcut(SourceFileName, ShortcutName: string;ShortcutLocation:ShortcutType; SubDirectory: string):boolean;
const
REG_SHELLFOLDERS =
''Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders'';
var
MyObject : IUnknown; file://IUnknown是基本的COM类
MySLink : IShellLink; file://用于创建快捷方式的对象
MyPFile : IPersistFile; file://用于保存快捷方式的对象
SubDir,Directory,LinkName : string;
WFileName : WideString;
Reg : TRegistry;
begin
Result:=False;
MyObject := CreateCOMObject(CLSID_ShellLink); file://建立快捷方式的COM对象
MySLink := MyObject as IShellLink;
MyPFIle := MyObject as IPersistFile;
MySLink.SetPath(pchar(SourceFileName)); file://设置快捷方式源文件的位置
Reg := TRegistry.Create ;
Reg.RootKey := HKEY_CURRENT_USER;
try
if Re