Oldal: 1 / 1

Asztali parancsikon létrehozása

Elküldve: 2016.10.15. 10:13
Szerző: kalmann
Asztali parancsikon létrehozása Delphi programból miként lehetséges? (D7)
Tisztelettel, kalmann

Re: Asztali parancsikon létrehozása

Elküldve: 2016.10.15. 12:15
Szerző: gaborg

Kód: Egész kijelölése

procedure desktopIcon(ffilename, pparam:string; fcaption: widestring);
var
   IObject : IUnknown;
   ISLink : IShellLink;
   IPFile : IPersistFile;
   PIDL : PItemIDList;
   InFolder : array[0..MAX_PATH] of Char;
   TargetName : String;
   LinkName : WideString;
   FLinkName : String;
begin
   TargetName := ffilename;

   IObject := CreateComObject(CLSID_ShellLink);
   ISLink := IObject as IShellLink;
   IPFile := IObject as IPersistFile;

   with ISLink do begin
      SetIconLocation(pChar(TargetName),0);
      SetArguments(pChar(pparam));
      SetPath(Pchar(TargetName));
      SetWorkingDirectory(Pchar(ExtractFilePath(TargetName)));
   end;

// asztalra helyezés
   SHGetSpecialFolderLocation(0, CSIDL_DESKTOPDIRECTORY, PIDL);
   SHGetPathFromIDList(PIDL, InFolder);

   FlinkName := '\'+ fcaption + '.lnk';

   LinkName := InFolder + FlinkName;
   IPFile.Save(PWChar(LinkName), false);
end;


Használata:
desktopIcon('C:/programok/program.exe','','Program');

A függvény paraméterei:

ffilename: file útvonala
pparam: indítási paraméter (pl: programok.exe a=1)
fcaption: parancsikon neve