C++ Builder Получить путь к системным каталогам

Функция SHGetSpecialFolderLocation на С++, которая получает путь к системный каталогам:


#define NO_WIN32_LEAN_AND_MEAN
#include // разместить выше всего в Unit1.cpp
...
LPITEMIDLIST pidl;
LPMALLOC pShellMalloc;
char szDir[MAX_PATH];

if(SUCCEEDED(SHGetMalloc(&pShellMalloc))) {
if(SUCCEEDED(SHGetSpecialFolderLocation(NULL,
CSIDL_COOKIES, &pidl))) {
if(SHGetPathFromIDList(pidl, szDir)) {
ShowMessage(szDir) ;
}
pShellMalloc->Free(pidl);
}
pShellMalloc->Release();
}

 

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

CSIDL_DESKTOP Рабочий стол (Desktop) для данного пользователя;
CSIDL_INTERNET Интернет (Internet);
CSIDL_PROGRAMS Программы (Programs) для данного пользователя;
CSIDL_CONTROLS Панель управления (Control Panel);
CSIDL_PRINTERS Принтеры (Printers);
CSIDL_PERSONAL Мои документы (My Documents);

CSIDL_FAVORITES Избранное (Favorites) для данного пользователя;
CSIDL_STARTUP Автозагрузка (Startup) для данного пользователя;
CSIDL_RECENT Документы (Documents);
CSIDL_SENDTO Отправить (Send To);
CSIDL_BITBUCKET Корзина (Recycle Bin);
CSIDL_STARTMENU Главное меню (Start menu) для данного пользователя;
CSIDL_DESKTOPDIRECTORY Файловые объекты Рабочего стола (Desktop directory);
CSIDL_DRIVES Мой компьютер (My computer);
CSIDL_NETWORK Сетевое окружение (Network Neighborhood);
CSIDL_NETHOOD Файловые объекты Сетевого окружения (Network Neighborhood);
CSIDL_FONTS Шрифты (Fonts);
CSIDL_TEMPLATES Шаблоны (Templates);
CSIDL_COMMON_STARTMENU Общие пункты меню Start, у всех пользователей;
CSIDL_COMMON_PROGRAMS Общие группы программ пользователя, у всех пользователей;
CSIDL_COMMON_STARTUP Автозагрузка для всех пользователей;
CSIDL_COMMON_DESKTOPDIRECTORY Общие файловые объекты Рабочего стола (Desktop directory);
CSIDL_APPDATA Файловая система, служащая общим репозиторием данных, специф. для приложения;
CSIDL_PRINTHOOD Каталог файловой системы, служащий общим репозиторием ссылок на принтеры;
CSIDL_ALTSTARTUP Нелокализованная Автозагрузка;
CSIDL_COMMON_ALTSTARTUP Нелокализованная Автозагрузка для всех пользователей;
CSIDL_COMMON_FAVORITES Общие избранные элементы, у всех пользователей;
CSIDL_INTERNET_CACHE Каталог  для временного хранения файлов, кэшируемых при работе с Internet;
CSIDL_COOKIES Каталог файловой системы, служащий общим репозиторием для Internet Cookies;
CSIDL_HISTORY Каталог файловой системы, служащий общим репозиторием для хранения истории работы с Internet.

К сожалению я не знаю автора данного кода, но все же поприветствуем его).

Добавить комментарий

Ваш e-mail не будет опубликован.