在 uses 引用 shlobj,ActiveX,ComObj
1 在 uses 引用 shlobj,ActiveX,ComObj 2 3 procedure AddLink; 4 var 5 tmpObject : IUnknown; 6 tmpSLink : IShellLink; 7 tmpPFile : IPersistFile; 8 PIDL : PItemIDList; 9 StartupDirectory : array[0..MAX_PATH] of Char; 10 LinkFilename : WideString; 11 linkshortname:string; 12 begin 13 tmpObject := CreateComObject(CLSID_ShellLink);//创建建立快捷方式的外壳扩展 14 tmpSLink := tmpObject as IShellLink;//取得接口 15 tmpPFile := tmpObject as IPersistFile;//用来储存*.lnk文件的接口 16 tmpSLink.SetPath(pChar(ExtractFilePath(application.exename)+ExtractFileName(Application.ExeName)));//设定nFolder所在路径 17 tmpSLink.SetWorkingDirectory(pChar(ExtractFilePath(application.exename)));//设定工作目录 18 SHGetSpecialFolderLocation(0,CSIDL_DESKTOPDIRECTORY,PIDL); 19 //获得桌面的Itemidlist 20 SHGetPathFromIDList(PIDL,StartupDirectory);//获得桌面路径 21 linkshortname:=Copy(ExtractFileName(Application.ExeName),0, 22 Length(ExtractFileName(Application.ExeName))-4); 23 LinkFilename := string(StartupDirectory)+'\'+linkshortname+'.lnk'; 24 tmpPFile.Save(pWChar(LinkFilename),FALSE);//保存*.lnk文件 25 //showmessage('已经成功添加快捷方式'''+linkshortname+'.lnk''!'); 26 end;