Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как прочитать ссылку, на которую ссылается ink-файл (файл ярлыка) [D6, WinXP]


Volf_555 ©   (2006-01-21 19:12:00) 

Делаю прогу-мониторинг автозагрузки реестра. Столкнулся с проблемой извлечения ссылки с *.ink - файла, то есть с файла ярлыка. Каким образом мне это сделать?


Volf_555   (2006-01-21 20:41:00) [1]


> Volf тебе Wotsit не понравился? :-)

Понравился, то понравился :-)
Но необходимой инфы по Delphi не получил. Там описана структура ярлыка... Но не про Delphi :)


tesseract   (2006-01-21 20:38:00) [2]

Переписать.
Volf тебе Wotsit не понравился? :-)


Volf_555   (2006-01-21 20:27:00) [3]

GetLinkInfo() - прописан на С++, как на Delphi перекомпилировать? :-)


GuAV   (2006-01-21 20:02:00) [4]

http://support.microsoft.com/default.aspx?scid=kb;en-us;130698


Volf_555   (2006-01-21 20:00:00) [5]

Всё заработало - спасибо!

Только *.pif - файлы не берёт.... Это тоже файл ярлыка, только для DOS


tesseract   (2006-01-21 19:57:00) [6]

ShlObj


Volf_555   (2006-01-21 19:55:00) [7]


> tesseract ©   (21.01.06 19:42) [5]
> http://www.wotsit.org/download.asp?f=shortcut

Информация про структуру ярлыков интересная, но примерчика там нету...


Volf_555   (2006-01-21 19:42:00) [8]

Нашёл следующую функцию, которая работает с небольшими сбоями.
function NameFromLink(const lnk: string): string;
var
 MyObject: IUnknown;
 MySLink: IShellLink;
 MyPFile: IPersistFile;
 c: PChar;
 pfd: _WIN32_FIND_DATAA;
begin
 Result := ′′;
 try
   MyObject := CreateComObject(CLSID_ShellLink);
   MySLink := MyObject as IShellLink;
   MyPFile := MyObject as IPersistFile;
   if MyPFile.Load(Pointer(WideString(lnk)), OF_READ) S_OK then
     exit;
   c := PChar(lnk);
   MySLink.GetPath(c, MAX_PATH, pfd, 0);
   Result := string(c);
 except
 end;
end;

Может кто подскажет какие модули надо подключить для нормальной работы функции?


tesseract   (2006-01-21 19:42:00) [9]

http://www.wotsit.org/download.asp?f=shortcut


Volf_555   (2006-01-21 19:27:00) [10]


> Также можно поискать формат файла на whatisit.

Дай ссылку


Volf_555   (2006-01-21 19:25:00) [11]

Что позновательно - это точно :-)

Но мне необходимо прочитать ссылку....


tesseract   (2006-01-21 19:17:00) [12]

Не пробовал открыть его в hex-editorе. Позновательно :-)
Также можно поискать формат файла на whatisit.


Наверх

Титульная страница Поиск, карта сайта Написать письмо