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

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

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

uses ShlObj;

 

function GetSpecialPath (CSIDL: word): string;

var s:  string;

begin

SetLength (s, MAX_PATH);

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

then s := '';

result := PChar (s);

end;

 

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

CSIDL_DESKTOP                       = $0000;

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

CSIDL_INTERNET                      = $0001;

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

CSIDL_PROGRAMS                      = $0002;

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

CSIDL_CONTROLS                      = $0003;

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

CSIDL_PRINTERS                      = $0004;

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

CSIDL_PERSONAL                      = $0005;

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

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

CSIDL_FAVORITES                     = $0006;

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

CSIDL_STARTUP                       = $0007;

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

CSIDL_RECENT                        = $0008;

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

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

CSIDL_SENDTO                        = $0009;

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

CSIDL_BITBUCKET                     = $000a;

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

CSIDL_STARTMENU                     = $000b;

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

CSIDL_DESKTOPDIRECTORY              = $0010;

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

CSIDL_DRIVES                        = $0011;

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

CSIDL_NETWORK                       = $0012;

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

CSIDL_NETHOOD                       = $0013;

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

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

CSIDL_FONTS                         = $0014;

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

CSIDL_TEMPLATES                     = $0015;

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

CSIDL_COMMON_STARTMENU              = $0016;

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

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

CSIDL_COMMON_PROGRAMS               = $0017;

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

CSIDL_COMMON_STARTUP                = $0018;

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

CSIDL_COMMON_DESKTOPDIRECTORY       = $0019;

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

CSIDL_APPDATA                       = $001a;

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

CSIDL_PRINTHOOD                     = $001b;

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

CSIDL_ALTSTARTUP                = $001d;         // DBCS

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

CSIDL_COMMON_ALTSTARTUP         = $001e;         // DBCS

// Устарело

CSIDL_COMMON_FAVORITES          = $001f;

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

CSIDL_INTERNET_CACHE            = $0020;

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

CSIDL_COOKIES                   = $0021;

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

CSIDL_HISTORY                   = $0022;

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

 

procedure TForm1.Button1Click (Sender: TObject);

var list:TStringList;

begin

list:=TStringList.Create;

//сохраняем файл 'temppp.txt' в C:\Documents and Settings\ruslan\Application Data\temppp.txt

list.SaveToFile (GetSpecialPath (CSIDL_APPDATA )+'\'+'temppp.txt');

list.Free;

end;

 

About admin

Speak Your Mind

Tell us what you're thinking...
and oh, if you want a pic to show with your comment, go get a gravatar!

Подтвердите, что Вы не бот — выберите самый большой кружок: