Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 2 162

/ вопрос открыт /

Доброго времени суток, уважаемые эксперты!
Понимаю, что вопрос тупой, но прошу строго не судить. Как программным путем получить в String полные пути к папке Windows, Programm Files, документам курент юзера?

Nasgool Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Nasgool (статус: 2-ой класс)
Вопрос отправлен: 6 декабря 2008, 12:28
Состояние вопроса: открыт, ответов: 1.

Ответ #1. Отвечает эксперт: min@y™

Я, конечно, могу написать типа: "читай SDK по функции GetSystemDirectory, GetWindowsDirectory и пр.", но есть способ лучше.
Скачай пакет модулей Delphi Works. Там в модуле dwFiles.pas есть функция, которая тебе нужна:

function dwGetSpecialFolder(const SpecialFolder: TDWSpecialFolder): String;
var
   pPath: PChar;
   Len: DWord;
begin
   GetMem(pPath, MAX_PATH);
   case SpecialFolder of
   dwspfSystem:   GetSystemDirectory(pPath, MAX_PATH);
   dwspfTempDir:  begin
                     Len:= GetTempPath(MAX_PATH, pPath);
                     if Len > MAX_PATH then GetTempPath(Len - 1, pPath);
                  end;
   dwspfWindows:  GetWindowsDirectory(pPath, MAX_PATH);
   else           SHGetSpecialFolderPath(GetCurrentProcess,
                                         pPath,
                                         dwSpecialFolderToCSIDL(SpecialFolder),
                                         FALSE);
   end;
 
   result:= IncludeTrailingBackslash(pPath);
   FreeMem(pPath, MAX_PATH);
end;

Ответ отправил: min@y™ (статус: Доктор наук)
Время отправки: 6 декабря 2008, 12:45
Оценка за ответ: 5

Комментарий к оценке: Главное смысл мне понятен и все заработало. Спасибо.

Мини-форум вопроса

Всего сообщений: 2; последнее сообщение — 6 декабря 2008, 18:31; участников в обсуждении: 2.
Nasgool

Nasgool (статус: 2-ой класс), 6 декабря 2008, 12:49 [#1]:

Нужно для консольного фильтра. В параметрах указывается список ключей регистра, фильтр читает данные и, если в них указан путь к какой-либо папке, меняет ее на корректную для данной системы. Затем прописывает их в реестр. Необходимо для автоматизации установки приложений.
Вадим К

Вадим К (статус: Академик), 6 декабря 2008, 18:31 [#2]:

не понимаю, и для кого я пишу статьи...
Сохранение настроек
Галочка "подтверждения прочтения" - вселенское зло.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:51
Выполнено за 0.02 сек.