Как открывать системные папки?
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 - Шрифты