![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Извлечение объекта из lnk-файла [D7, WinXP]
webpauk © (2009-10-30 15:32:00)Как извлечь имя файла (объект) на который ссылается lnk-файл?
Anatoly Podgoretsky (2009-10-30 20:05:00) [1]> webpauk (30.10.2009 16:42:02) [2]
Смешно, ярлык удалили, но из него надо изъять информацию.
webpauk (2009-10-30 17:02:00) [2]нашел
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 (2009-10-30 16:42:00) [3]предположим, ярлык удалили. но объект то остался?
вот для чего нужен именно объект, на который ссылается lnk
Leonid Troyanovsky (2009-10-30 16:26:00) [4]
> webpauk © (30.10.09 15:32)
> Как извлечь имя файла (объект) на который ссылается lnk-
> файл?
А имя зачем потребовалось? Я к чему, если запустить,
то можно примерно так:
http://groups.google.com/group/fido7.ru.delphi/msg/83a2491e6033dfcd
Ну, а имя файла можно в свойствах IShellFolder, ЕМНИП, поискать.
--
Regards, LVT.