我们的老大哥如是说:回复人:Kingron(WinAPI) (2001-3-3 17:27:00)  得20分 
下面的代码是从我的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;