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

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

Shortcut на рабочем столе. Проблема с функцией GetDir(0,sPath); [D7, XP]


Fantasy ©   (2010-04-05 19:23:00) 

создает   Inno Setup> Shortcutна рабочем столе
Проблема в том что фукция GetDir(0,sPath);возвращает адрес Shortcut-a а не адрес exe файла;
(Если создать Shortcut стандартной функцией windows то GetDir(0,sPath);правильно работает)

мастера подскажите как решить проблему?


Anatoly Podgoretsky   (2010-04-13 20:18:00) [1]

Это две разные по результатам функции.


Loginov Dmitry   (2010-04-13 20:03:00) [2]


> как решить проблему?


Используйте ExtractFilePath(ParamStr(0)) вместо GetDir


Fantasy   (2010-04-13 18:13:00) [3]

Спасибо Knob


Knob   (2010-04-06 10:22:00) [4]

Должно работать.
uses ActiveX, ComObj, ShlObj

...

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 := strpas(c);
 except
 end;
end;


Наверх

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