下面的代码是从我的Tools.Pas中摘录下来的,给你参考吧。
const
  CCH_MAXNAME=255;
  LNK_RUN_MIN=7;
  LNK_RUN_MAX=3;
  LNK_RUN_NORMAL=1;type LINK_FILE_INFO=record
         FileName:array[0..MAX_PATH] of char;
         WorkDirectory:array[0..MAX_PATH] of char;
         IconLocation:array[0..MAX_PATH] of char;
         IconIndex:integer;
         Arguments:array[0..MAX_PATH] of char;
         Description:array[0..CCH_MAXNAME] of char;
         ItemIDList:PItemIDList;
         RelativePath:array[0..255] of char;
         ShowState:integer;
         HotKey:word;
     end;function CreateLinkFile(const info:LINK_FILE_INFO;const DestFileName:string=''):boolean;
var
 anobj:IUnknown;
 shlink:IShellLink;
 pFile:IPersistFile;
 wFileName:widestring;
begin
 wFileName:=destfilename;
 anobj:=CreateComObject(CLSID_SHELLLINK);
 shlink:=anobj as IShellLink;
 pFile:=anobj as IPersistFile;
 shlink.SetPath(info.FileName);
 shlink.SetWorkingDirectory(info.WorkDirectory);
 shlink.SetDescription(info.Description);
 shlink.SetArguments(info.Arguments);
 shlink.SetIconLocation(info.IconLocation,info.IconIndex);
// shlink.SetIDList(info.ItemIDList);
 shlink.SetHotkey(info.HotKey);
 shlink.SetShowCmd(info.ShowState);
 shlink.SetRelativePath(info.RelativePath,0);
 if DestFileName='' then
  wFileName:=ChangeFileExt(info.FileName,'lnk');
 result:=succeeded(pFile.Save(pwchar(wFileName),false));
end;