Как открывать системные папки?

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