Delphi中创建新快捷方式:
Visual Studio 5.0光盘中VFP5.0子目录下带一个STKIT432.DLL,其中有一个函数
的API如下(Object Pascal 定义):
fucntion fCreateShellLink(DestPath, LinkName, LinkAppPath, LinkArgs: Pchar)
: Integer; stdcall; external 'STKIT432.DLL';
(但是,我试验过却不能用,不知道是否使用不当)
另一种通过COM自动化的方法创建快捷方式如下:
uses … , ShlObj, ActiveX, ComObj;
procedure CreateShellLink(const DestPath, LinkName, LinkAppPath,
LinkArgs, Description: String);
Var
aObj: IUnknown;
WFileName: WideString;
Begin
aObj := CreateComObject(CLSID_ShellLink);
With aObj as IShellLink do begin
{对MS-DOS程序,一般建议使用SetShowCmd(SW_SHOWMAXIMIZED);}
SetShowCmd(SW_NORMAL);
SetArguments(Pchar(LinkArgs));
SetDescription(Pchar(Description));
SetPath(Pchar(LinkAppPath));
SetWorkingDirectory(Pchar(ExtractFilePath(LinkAppPath)));
End;
{将一个String赋给WideString,转换过程由Delphi自动完成}
WFileName := DestPath + '/' + LinkName;
(aObj as IPersistFile).Save(PWChar(WFileName), False);
End;
使用CreateShellLink过程要保证路径文件名参数正确,如下:
CreateShellLink('C:/Pwin98/Desktop', '快捷方式名', 'C:/Command.com',
'', '简短描述');
CreateShellLink('C:/Pwin98/Desktop', 'Win32程序.Lnk', 'D:/Setup.exe', '', '');