Переменные окружения windows delphi

Переменные среды WINDOWS в Delphi

Posted by admin on Четверг, Март 27, 2014 · Добавить комментарий

В Windows есть специальная функция, позволяющая получить пути к стандартным папкам.

В Delphi это будет выглядеть так:

function GetSpecialPath (CSIDL: word): string;

SetLength (s, MAX_PATH);

if not SHGetSpecialFolderPath (0, PChar (s), CSIDL, true)

result := PChar (s);

// Следующие идентификаторы имеются в модуле ShlObj:

// Виртуальный каталог, представляющий Рабочий стол. (Корень в проводнике)

// Виртуальный каталог для Internet Explorer.

// Меню Пуск -> Программы

// Виртуальный каталог, содержащий иконки пунктов панели управления

// Виртуальный каталог, содержащий установленные принтеры

// Виртуальный каталог, представляющий папку «Мои документы»

// До Vista ссылался на какталог «Мои документы» на жёстком диске

// Избранное. (обычно C:\Documents and Settings\username\Favorites)

// Пуск -> Программы -> Автозагрузка

// Недавние документы (обычно C:\Documents and Settings\username\My Recent Documents

// Для добавления ссылки документа используйте SHAddToRecentDocs

// Папка, содержащая ярлыки меню «Отправить» (Sent to. ) (обычно C:\Documents and Settings\username\SendTo)

// Виртуальный каталог, содержащий файлы в корзине текущего пользователя

// Элементы меню Пуск текущего пользователя (обычно C:\Documents and Settings\username\Start Menu)

// Рабочий стол текущего пользователя (обычно C:\Documents and Settings\username\Desktop)

// Виртуальный каталог, представляющий папку «Мой компьютер»

// Виртуальный каталог, представляющий «Сетевое окружение»

// Папка «My Nethood Places» (обычно C:\Documents and Settings\username\NetHood)

// В неё ссылки на избранные расшаренные ресурсы

// Папка, содержащая установленные шрифты. (обычно C:\Windows\Fonts)

// Шаблоны документов. (Обычно Settings\username\Templates)

// Элементы меню Пуск для всех пользователей. (обычно C:\Documents and Settings\All Users\Start Menu)

// Константы, начинающиеся на CSIDL_COMMON_ существуют только в NT версиях

// Меню Пуск -> программы для всех пользователей (обычно C:\Documents and Settings\All Users\Start Menu\Programs)

// Меню Пуск -> Программы -> Автозагрузка для всех пользователей (обычно C:\Documents and Settings\All Users\Start Menu\Programs\Startup)

Читайте также:  Нужно ли активировать windows 10 домашняя

// Элементы Рабочего стола для всех пользователей (обычно C:\Documents and Settings\All Users\Desktop)

// Папка, в которой рограммы должны хранить свои данные(C:\Documents and Settings\username\Application Data)

// Установленные принтеры. (обычно C:\Documents and Settings\username\PrintHood)

CSIDL_ALTSTARTUP = $001d; // DBCS

// user’s nonlocalized Startup program group. Устарело.

CSIDL_COMMON_ALTSTARTUP = $001e; // DBCS

// Ссылки «Избранное» для всех пользователей

// Временные Internet файлы (обычно C:\Documents and Settings\username\Local Settings\Temporary Internet Files)

// Папка для хранения Cookies (обычно C:\Documents and Settings\username\Cookies)

// Хранит ссылки интернет истории IE

procedure TForm1.Button1Click (Sender: TObject);

Переменные среды Windows

Приветствую Уважаемые форумчане!

Есть у меня функция для извлечения
из переменной полного пути.

Собственно вопрос, на сколько правильное решение и правильное ли оно вообще, для определения указанной директории
>>> C:\Users\Igor\AppData\Roaming 0

Переменные Среды (Использование готового кода)
Накопал на сайте Код для получения переменных сред. procedure GetEnvironmentStrings(ss:TStrings);.

Переменные среды Windows
Доброго времени всем! Так и не врубился, как заставить код понимать переменные среды Windows.

Переменные среды windows
Я только начинаю изучать, для меня все очень сложно. Есть такой код #include #include.

Переменные среды Windows
Как в c++ использовать переменные среды windows? Например я хочу открыть текстовый файл в.

Мне нужна директория C:\Users\Igor\AppData\Roaming
Работать программа будет на разных компьютерах

C:\Users\Igor\AppData\Roaming
C:\Users\Vasy\AppData\Roaming
C:\Users\Pety\AppData\Roaming
C:\Users\Алёша\AppData\Roaming

А там что я буду делать в этой директории.

Добавлено через 3 минуты
Есть еще функция

По константе, но по константе не удобно.
Так как мне хотелось бы передавать в качестве аргумента не константу, а для примера %AppData%\Temp\Хрень\

в итоге должно получится C:\Users\Алёша\AppData\Roaming\Temp\Хрень\

Добавлено через 2 минуты
Чем больше я погружаюсь в мир программирования для Windows тем больше вопросов бле**** . о_О
Всякие не стыковки. У меня все работает, у заказчика нет че за хрень.

Читайте также:  Тема windows aero glass нет

Ну у меня констант много, смотрите

Но, мне нужно передавать в качестве аргумента %AppData%\Temp\Хрень\

Добавлено через 2 минуты
я же не передам вот так

Конечно можно написать свой костыль.
Что то типа

%AppData%\Temp\Хрень\
Когда я буду в своей программе составлять некий скрипт, что бы не писать полный относительный путь я буду использовать переменные среды. Я же не телепат что бы узнать какое имя у пользователя (хотя есть некие телепатические способности, можно так же средствами Delphi определить имя пользователя а потом вставить куда нужно, но зачем?)

Хочу ограничится %AppData%. Ну если переменные среды совместимы со всеми версиями ОС то это ЗБС.

У меня Win 7 x64

Я думаю что не стоит так заморачиваться, но если не сложно, да бы пролить свет.

желаемые ос это все что выше семерки.

Следовательно не париться, все будет работать.

Добавлено через 12 секунд
Спасибо.

IncludeTrailingPathDelimiter — проверяет и добавляет слэш-разделитель в конец, если его нет
ExcludeTrailingPathDelimiter — проверяет и удаляет слэш-разделитель в конце, если он есть

Добавлено через 46 секунд
с другой стороны, можно и самому подумать и написать функцию проверки в две строки

жестяк! зачем добавлять символ, чтобы тут же его убрать?

ExtractFilePath ВСЕГДА возвращает путь с разделителем в конце, а разделителем может быть и не слэш (зависит от настроек ОС). в этом плане и IncludeTrailingPathDelimiter оперирует с системным разделителем

Добавлено через 2 минуты

да ладно. Теоретически это так, но должно быть какое то соглашение, не верю в ерунду, где бы я ни был, везде видел разделитель \

Вы с какой планеты?
И какие разделители Вы видели?

Добавлено через 1 минуту
Да, и скажите еще что Email адрес, что бы отделить домен от имени адреса у Вас используют # )))

Читайте также:  Как отключить автоускорение мыши windows 10

Добавлено через 5 минут
Да, к стати, идея.
Илон Маск колонизирует марс, вот там можно использовать альтернативы, \ заменить на |, а @ на #

возможно, я спутал с другим каким-то разделителем, не отрицаю, но..
1. если есть предопределенные функции, реализующие необходимый функционал, то
2. нахрена создавать даже не костыли, а обрубки костылей, добавляя, а затем убирая один и тот же символ?!

Добавлено через 54 секунды

вот именно, если кроссплатформенное приложение, то весь твой костыль, popryduhin, сломается с веселым треском

Добавлено через 1 минуту
а в исходниках делфи указано

и дельфийские функции работают именно с этой константой

Добавлено через 3 минуты

кстати, модераторы, баг с подсветкой кода с участием директивы компилятора. ведь значение в кавычках долно отображаться как строковое

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Переменные окружения (среды) Windows XP
Нужно на большом количестве компьютеров изменить переменное окружение — добавить довольно много.

Переменные среды Windows в строке, считанной из файла
Задача: есть текстовый файл, в котором записаны пути к файлам или папкам. Требуется, например.

Переменные среды
Например, я скачал и разархивировал JDK. Как сделать так, чтобы он был виден системе, т. е. если я.

Переменные среды — II
Ребята, вот что у меня получилось. Работает. .

Переменные среды
Привет ! Вот записал в переменные среды такую штуку : RESIN_HOME=@#$. Хочу ее прочитать в.

Переменные среды
У меня такая же проблема, как у автора. Тоже проверял на подлинность. Потом перестал работать офис.

Оцените статью