Программирование на Delphi и не только Как открывать системные папки? | Программирование на Delphi и не только

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