Programowanie w języku Delphi » FAQ

Jak wyciągnąć ścieżkę ze skrótu (.lnk)

  • 1 komentarz
  • 866 odsłon
  • Oceń ten tekst jako pierwszy
Po trzech dniach poszukiwań i po tym jak dwa razy moje posty zostały skasowane z forum ;-) :-) ;) :)  w końcu znalazłem...
Już chyba każdy wie jak stworzyć skrót, ale jak zrobić operacje odwrotną tzn. wyciągnąć ścieżkę do pliku docelowego ze skrótu programu?
Oto gotowy kod:

function TForm1.LnkPath(Plik:WideString):String;
var
  MyObj : IUnknown;
  MyLnk : IShellLink;
  MyPf  : IPersistFile;
  ok    : TWin32FindData;
  Path  : array [0..255] of char;
begin
  MyObj := CreateComObject(CLSID_ShellLink);
  MyLnk := MyObj as IShellLink;
  MyPf  := MyObj as IPersistFile;
  MyPf.Load(PWideChar(Plik),fmOpenRead);
  MyLnk.GetPath(Path, 255, ok, 0);
  Result:=Path;
end;


no i do uses dodajemy:
ActiveX, SHlObj, ComObj


i teraz już wystarczy tylko:
Label1.Caption := LnkPath('c:\skrot.lnk');

1 komentarz