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