![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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;