Delphi FAQ >> Файлы и каталоги
uses Shellapi, Shlobj;
…
Procedure OpenSpecialDir(const CSIDL:byte);
var
PIDL: PItemIDList;
Info: TShellExecuteInfo;
pInfo:PShellExecuteInfo;
begin
SHGetSpecialFolderLocation(0,CSIDL,PIDL);
pInfo:=@Info;
With Info do
begin
cbSize:=SizeOf(Info);
fMask:=SEE_MASK_NOCLOSEPROCESS+SEE_MASK_IDLIST;
wnd:=0;
lpVerb:=nil;
lpFile:=nil;
lpParameters:=nil;
lpDirectory:=nil;
nShow:=SW_ShowNormal;
hInstApp:=0;
lpIDList:=PIDL;
end;
ShellExecuteEx(pInfo);
end;
Константа CSIDL берётся из модуля ShlObj. Вот значения CSIDL для некоторых папок:
— CSIDL_APPDATA — Application Data
— CSIDL_BITBUCKET — Корзина
— CSIDL_CONTROLS — Панель управления
— CSIDL_COOKIES — Cookies
— CSIDL_DESKTOP — Рабочий стол
— CSIDL_DESKTOPDIRECTORY — папка Рабочего стола
— CSIDL_DRIVES — Мой компьютер
— CSIDL_FAVORITES — Избранное
— CSIDL_FONTS — Шрифты