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

TeWuX

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');
FAQ

1 komentarz

A ja nie wiem jak zrobić skróóóóót :(:(:(