J'ai trouve ceci sur ngscan qui fonctionne
procedure TForm1.FormCreate(Sender: TObject);
var
IdList: PITEMIDLIST;
Path: array[0..MAX_PATH] of Char;
ShellLink : IShellLink;
ShortCutPath: string;
begin
if SHGetSpecialFolderLocation(0, CSIDL_DESKTOPDIRECTORY, IdList)= NOERROR
then
begin
SHGetPathFromIDList(IdList, Path);
ShellLink:=CreateComObject(CLSID_ShellLink) as IShellLink;
ShellLink.SetDescription('');
ShellLink.SetPath(PChar(Application.ExeName));
ShellLink.SetShowCmd(SW_SHOW);
ShortCutPath:= String(Path)+ '\'+ 'Nom du raccourcis'+ '.LNK';
(ShellLink as IpersistFile).Save(StringToOleStr(ShortCutPath), true);
end;
end;