Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.04.2009, 12:17   #1
Ntlegend
Форумчанин
 
Аватар для Ntlegend
 
Регистрация: 12.05.2007
Сообщений: 373
Вопрос Определение пути к папке

Драсте.. у меня возникла такая проблема нужно определить путь к папке с ярлыками "быстрого запуска"
(в WinXP = C:\Documents and Settings\%userprofile%\Application Data\Microsoft\Internet Explorer\Quick Launch
в Windows 7 = C:\Users\%username%\AppData\Roaming \Microsoft\Internet Explorer\Quick Launch)

вариант вводить константы и дальше проверять версию винды не подходит..
функцыя SHGetSpecialFolderLocation тоже не подходит (описание ее констант тут)
читать с реестра тоже не охота.. а как еще можна єто сделать ч ятото не нахожу
Перемен! - требуют наши сердца. Перемен! - требуют наши глаза.
В нашем смехе и в наших слезах, И в пульсации вен:
"Перемен!Мы ждем перемен!"
Ntlegend вне форума Ответить с цитированием
Старый 01.04.2009, 12:23   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
читать с реестра тоже не охота
Че так?......
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.04.2009, 12:37   #3
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,917
По умолчанию

а чем не нравиться функция SHGetSpecialFolderLocation ?
И ее использование к примеру :
Код:
function  GetVirtualFolderPath(Hand:THandle; param: integer):string;
begin
  if SHGetMalloc(Allocator) = NOERROR then
  begin
    SHGetSpecialFolderLocation(Hand, param, SpecialDir);
    SHGetPathFromIDList(SpecialDir, @FBuf[0]);
    Allocator.Free(SpecialDir);
    Result := string(FBuf);
  end;
end;
Получи путь к Application Data
Код:
GetVirtualFolderPath(Application.Handle, CSIDL_APPDATA{значение $001a})
и далее иди по ней...
"Заряженному танку в дуло не смотрят" @Dekmer in WoT
Kotofff вне форума Ответить с цитированием
Старый 01.04.2009, 12:48   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Kotofff
Внимательно читай пути в первом посте.
Там пути разные.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.04.2009, 12:59   #5
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,917
По умолчанию

Только что проверил на Windows 7 - все работает корректно ...
"Заряженному танку в дуло не смотрят" @Dekmer in WoT
Kotofff вне форума Ответить с цитированием
Старый 01.04.2009, 14:22   #6
Ntlegend
Форумчанин
 
Аватар для Ntlegend
 
Регистрация: 12.05.2007
Сообщений: 373
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Цитата:
читать с реестра тоже не охота
Че так?......
потому что это единственный вариант который пришол мне в голову.. если других методов нету - то так и сделаю.. но если есть другие способы - то из 2-х можна выбрать наиболее рацыональный в данном случае..

Цитата:
Получи путь к Application Data
Код:
GetVirtualFolderPath(Application.Handle, CSIDL_APPDATA{значение $001a})
и далее иди по ней...
***
Только что проверил на Windows 7 - все работает корректно ...
ну получу я Application Data а дальше куда??
[QUOTE]
(в WinXP = C:\Documents and Settings\%userprofile%\Application Data\Microsoft\Internet Explorer\Quick Launch
в Windows 7 = C:\Users\%username%\AppData\Roaming\Microsoft\Inte rnet Explorer\Quick Launch)
[QUOTE]

как вариант еще можна взять и проверить на существование папки Roaming но это опять таки ведет к констнтам.. а использовать константы пути я нехочу.. ато при какихто новых введениях в Windows прийдётся модефиціровать код программы..

Перерел реестр.. нигде не нашол.. остается тока вариант вводить константы.. может ктонибудь еще чтото посоветует??
Перемен! - требуют наши сердца. Перемен! - требуют наши глаза.
В нашем смехе и в наших слезах, И в пульсации вен:
"Перемен!Мы ждем перемен!"

Последний раз редактировалось Stilet; 01.04.2009 в 16:58.
Ntlegend вне форума Ответить с цитированием
Старый 01.04.2009, 17:04   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Ntlegend
гм.гм... Поскольку это папка не Винды а Эксплорера, то можно попробовать выцепить путь к папке Internet Explorer, а в нем уж и КвикЛанч.

Задача только в том как получить именно его папку - может быть спросить у самого Эксплорера.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определение полного пути папок TreeView vitawt Общие вопросы Delphi 8 22.02.2009 15:13
Присваивание атрибута папке. papa_serg Общие вопросы Delphi 2 05.01.2009 16:45
Пароль на папке artemavd Общие вопросы Delphi 1 24.09.2008 11:20
Определение пути к файлу Pinya Общие вопросы Delphi 1 07.08.2008 12:22
Выбор пути к папке Македонский Общие вопросы Delphi 2 28.08.2007 17:01