// este procedimiento extraido de una web de Tips:
// uses ShlObj, activex, ComObj;
por ejemplo, crealnk() asi:
CreaLnk( 'c:\windows\explorer.exe', {Ejecutable}
'c:\', {Argumentos}
'c:\', {Diretorio de trabajo}
'abro carpeta C con explorador', {Nombre del Acceso Directo}
'C:\Documents and Settings\cuervo\Escritorio\'); {shortcut escritorio en winXP}
// procedimiento crealnk:
Procedure CreaLnk( Exe,Argumentos,DirTrabajo,NombreLnk, DirDestino:string);
var
Objeto: IUnknown;
UnSlink: IShellLink;
FicheroP: IPersistFile;
WFichero: WideString;
begin
Objeto := CreateComObject(CLSID_ShellLink);
UnSlink := Objeto as IShellLink;
FicheroP := Objeto as IPersistFile;
with UnSlink do
begin
SetArguments( PChar(Argumentos) );
SetPath( PChar(Exe) );
SetWorkingDirectory( PChar(DirTrabajo) );
end;
WFichero := DirDestino + '\' + NombreLnk;
FicheroP.Save(PWChar(WFichero),False);
end;
// para ejecutar el acceso directo:
ShellExecute(0,nil,Pchar('C:\ruta del accesodirecto\accesodirecto.lnk'),nil,nil,SW_SHOWNORMAL);
// espero que te sirva y entiendas el codigo