Листинг 4.15.
Использование функции GetSpecialDir
procedure TForm3.Button1Click(Sender: TObject);
var
item: TListItem;
begin
lvwPathes.Clear;
//Определение путей некоторых системных каталогов
//..Рабочий стол
item := lvwPathes.Items.Add();
item.Caption := \'Рабочий стол\
item.SubItems.Insert(0, GetSpecialDir(CSIDL_DESKTOPDIRECTORY));
//..Избранное
item := lvwPathes.Items.Add();
item.Caption := \'Избранное\
item.SubItems.Insert(0, GetSpecialDir(CSIDL_FAVORITES));
//..Шрифты
item := lvwPathes.Items.Add();
item.Caption := \'Шрифты\
item.SubItems.Insert(0, GetSpecialDir(CSIDL_FONTS));
//..Мои документы
item := lvwPathes.Items.Add();
item.Caption := \'Мои документы\
item.SubItems.Insert(0, GetSpecialDir(CSIDL_PERSONAL));
//..Последние документы
item := lvwPathes.Items.Add();
item.Caption := \'Последние документы\
item.SubItems.Insert(0, GetSpecialDir(CSIDL_RECENT));
//..История
item := lvwPathes.Items.Add();
item.Caption := \'История\
item.SubItems.Insert(0, GetSpecialDir(CSIDL_HISTORY));
//..Отправить
item := lvwPathes.Items.Add();
item.Caption := \'Отправить\
item.SubItems.Insert(0, GetSpecialDir(CSIDL_SENDTO));
//..Меню Пуск
item := lvwPathes.Items.Add();
item.Caption := \'Пуск\
item.SubItems.Insert(0, GetSpecialDir(CSIDL_STARTMENU));
//..Меню Программы
item := lvwPathes.Items.Add();
item.Caption := \'Программы\
item.SubItems.Insert(0, GetSpecialDir(CSIDL_PROGRAMS));
//..Меню Автозагрузка
item := lvwPathes.Items.Add();
item.Caption := \'Автозагрузка\
item.SubItems.Insert(0, GetSpecialDir(CSIDL_STARTUP));
//..Папка с шаблонами документов
item := lvwPathes.Items.Add();
item.Caption := \'Шаблоны\
item.SubItems.Insert(0, GetSpecialDir(CSIDL_TEMPLATES));
end;
Результат работы процедуры из листинга 4.14 приводится на рис. 4.3.
Рис. 4.3. Прочие системные пути Windows
В приведенной в листинге 4.15 процедуре определены не все пути, доступные с использованием функции SHGetSpecialFolderPath. Дело в том, что существует ряд виртуальных (не существующих реально на диске) папокМой компьютер, Принтеры, Сетевое окружение и т д.
Для некоторых упоминаемых в листинге 4.15 папок есть также аналогичные папки, содержимое которых доступно всем пользователям:
• CSIDL_COMMON_DESKTOPDIRECTORY – содержимое этой папки отображается на Рабочем столе всех пользователей;
• CSIDL_COMMON_DOCUMENTS – общие документы;
• CSIDL_COMMON_FAVORlTES—общие элементы папки Избранное;
• CSIDL_COMMON_PROGRAMS – общие для всех пользователей программы (пункт Программы меню Пуск);
• CSIDL_COMMON_STARTMENU – общие элементы, отображаемые вменю Пуск;
• CSIDL_COMMON_STARTUP – общие элементы меню Автозагрузка;
• CSIDL_COMMON_TEMPLATES – папка с общими для всех пользователей шаблонами документов.