Получение имени файла из его ярлыка



Автор: VID
WEB-сайт: http://delphibase.endimus.com

{ **** UBPFD *********** by delphibase.endimus.com ****
>> Получение имени файла из его ярлыка
В параметре LinkFileName необходимо указать полное имя файлы-ярлыка.
Функция возвратит полное имя файла, на который ссылается рассматриваемый ярлык
Зависимости: ComObj, SysUtils, Windows, ActiveX, System, ShlObj
Автор:       VID, [email protected], ICQ:132234868, Махачкала
Copyright:   некий FAQ... не помню какой
Дата:        27 апреля 2002 г.
***************************************************** }
function GetFileNamefromLink(LinkFileName: string): string;
var
MyObject: IUnknown;
MySLink: IShellLink;
MyPFile: IPersistFile;
FileInfo: TWin32FINDDATA;
WidePath: array[0..MAX_PATH] of WideChar;
Buff: array[0..MAX_PATH] of Char;
begin
Result := '';
if (fileexists(Linkfilename) = false) then
exit;
MyObject := CreateComObject(CLSID_ShellLink);
MyPFile := MyObject as IPersistFile;
MySLink := MyObject as IShellLink;
StringToWideChar(LinkFileName, WidePath, SizeOf(WidePath));
MyPFile.Load(WidePath, STGM_READ);
MySLink.GetPath(Buff, Max_PATH, FileInfo, SLGP_UNCPRIORITY);
Result := buff;
end;

Далее: Программно создать ярлык »»