王宏健的专栏 ---- 健康快乐

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

创建快捷方式(Delphi)

uses ExtCtrls,ShlObj,ActiveX, comObj;

procedure createLink;
var
  tmpObject : IUnknown;
  tmpSLink : IShellLink;
  tmpPFile : IPersistFile;
  PIDL : PItemIDList;
  StartupDirectory : array[0..MAX_PATH] of Char;
  StartupFilename : String;
  LinkFilename : WideString;
begin
  StartupFilename := extractfilepath(paramstr(0))+'test.exe'
  tmpObject := CreateComObject(CLSID_ShellLink);//创建建立快捷方式的外壳扩展
  tmpSLink := tmpObject as IShellLink;//取得接口
  tmpPFile := tmpObject as IPersistFile;//用来储存*.lnk文件的接口
  tmpSLink.SetPath(pChar(StartupFilename));//设定notepad.exe所在路径
  tmpSLink.SetWorkingDirectory(pChar(ExtractFilePath(StartupFilename)));//设定工作目录
  SHGetSpecialFolderLocation(0,CSIDL_DESKTOPDIRECTORY,PIDL);//获得桌面的Itemidlist
  SHGetPathFromIDList(PIDL,StartupDirectory);//获得桌面路径
  LinkFilename := StartupDirectory + '\test.lnk';
  tmpPFile.Save(pWChar(LinkFilename),FALSE);//保存*.lnk文件
end;

posted on 2005-01-21 08:48  LuckyJan  阅读(260)  评论(0)    收藏  举报