-
Как извлечь имя файла (объект) на который ссылается lnk-файл?
-
-
предположим, ярлык удалили. но объект то остался? вот для чего нужен именно объект, на который ссылается lnk
-
нашел
uses
ShlObj, ActiveX;
function GetTarget(const LinkFileName: String; out Str:String): Boolean;
var
psl: IShellLink;
ppf: IPersistFile;
WidePath: Array[0..260] of WideChar;
Info: Array[0..MAX_PATH] of Char;
wfs: TWin32FindData;
begin
Result:=false;
if UpperCase(ExtractFileExt(LinkFileName)) <> '.LNK' Then
begin
Str:='NOT a shortuct by extension!';
Exit;
end;
CoCreateInstance(CLSID_ShellLink, nil, CLSCTX_INPROC_SERVER, IShellLink, psl);
if psl.QueryInterface(IPersistFile, ppf) = 0 then
begin
MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, PChar(LinkFileName), -1, @WidePath, MAX_PATH);
ppf.Load(WidePath, STGM_READ);
psl.GetPath(@info, MAX_PATH, wfs, SLGP_UNCPRIORITY);
Str := info;
Result:=True;
end
else Str := '';
end;
-
> webpauk (30.10.2009 16:42:02) [2]
Смешно, ярлык удалили, но из него надо изъять информацию.
|