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;

全文:http://www.cnblogs.com/railgunman/archive/2010/12/08/1900704.html

附:http://www.23book.net/SoftwareDev/Delphi/35578.htm

https://code.csdn.net/snippets/137534/

在delphi 获取特殊目录 SHGetSpecialFolderLocation SHGetPathFromIDList 32位 64位

http://www.xixiwg.com/article/27208.html

posted @ 2017-04-01 11:44  stma  阅读(433)  评论(0)    收藏  举报