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 — Шрифты