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;
|
请发表评论