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

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

Папка "Автозаргузка" и данные из ярлыка. [D7, XP]


WestBronx ©   (2006-02-26 17:47:00) 

Привет мастера.
1. Подскажите, как узнать, где находится папка "Автозаргузка", запустившего программу пользователя?

2. Как получить путь к программе, из ярлыка? Т.Е. Есть ярлык, например "readme.txt.lnk", как из него получить путь на программу, на которую он ссылается? Эх, вроде правельно сформировал мысль, спасибо за внимание ;)


WestBronx   (2006-02-26 20:21:00) [1]

begin...end ©   (26.02.06 19:57) [3]
Большое спасибо.


begin...end   (2006-02-26 19:57:00) [2]

> WestBronx   (26.02.06 19:30) [2]

1.

uses
 ShlObj;
var
 Path: array [0..MAX_PATH] of Char;
begin
 if SHGetSpecialFolderPath(0, Path, CSIDL_STARTUP, False) then
   ShowMessage(Path)
end


2.

uses
 ShlObj, ComObj, ActiveX;
var
 Unknown: IUnknown;
 ShellLink: IShellLink;
 PersistFile: IPersistFile;
 FindData: TWin32FindData;
 FilePath: array [0..MAX_PATH] of Char;
begin
 Unknown := CreateComObject(CLSID_ShellLink);
 ShellLink := Unknown as IShellLink;
 PersistFile := Unknown as IPersistFile;
 if PersistFile.Load('C:\Ярлык.lnk', STGM_READ) = S_OK then
   if ShellLink.GetPath(FilePath, SizeOf(FilePath), FindData, 0) = NOERROR then
     ShowMessage(FilePath)
end


WestBronx   (2006-02-26 19:30:00) [3]

begin...end ©   (26.02.06 18:21) [1]
Это ShlObj?
Немогли бы, вы разжевать, как именно использовать?

1. Что в других параметрах указывать?
Я попробывал вот так:
appdn := BoolToStr(SHGetSpecialFolderPath(hwndOwner, '0', CSIDL_STARTUP, fCreate));
Неполучилось =(

2. Это вообще не понял =( Незнаю что такое интерфейс.


begin...end   (2006-02-26 18:21:00) [4]

1. API-функция SHGetSpecialFolderPath (параметр nFolder = CSIDL_STARTUP).
2. Интерфейс IShellLink, метод GetPath.


Наверх

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