delphi编程创建桌面快捷方式

delphi编程创建桌面快捷方式

 

uses ActiveX,ComObj,StdCtrls,ShlObj,FileCtrl; 
procedure TForm1.N2Click(Sender: TObject); 
var 
tmpObject : IUnknown; 
tmpSLink : IShellLink; 
tmpPFile : IPersistFile; 
PIDL : PItemIDList; 
StartupDirectory : array[0..MAX_PATH] of Char; 
StartupFilename : String; 
LinkFilename : WideString; 
begin 
//创建快捷方式到桌面 
StartupFilename :=Application.ExeName; 
tmpObject := CreateComObject(CLSID_ShellLink);//创建建立快捷方式的外壳扩展 
tmpSLink := tmpObject as IShellLink;//取得接口 
tmpPFile := tmpObject as IPersistFile;//用来储存*.lnk文件的接口 
tmpSLink.SetPath(pChar(StartupFilename));//设定所在路径 
tmpSLink.SetWorkingDirectory(pChar(ExtractFilePath(StartupFilename)));//设定工作目录 
SHGetSpecialFolderLocation(0,CSIDL_DESKTOPDIRECTORY,PIDL);//获得桌面的Itemidlist 
tmpSLink.SetDescription(’我的程序的描述); 
tmpSLink.SetIconLocation(Pchar(StartupFilename),0); 
SHGetPathFromIDList(PIDL,StartupDirectory);//获得桌面路径 
LinkFilename := StartupDirectory + ’我的程序.lnk’; 
tmpPFile.Save(pWChar(LinkFilename),FALSE);//保存*.lnk文件 
end;

原文地址:https://www.cnblogs.com/honeynm/p/4105031.html