Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 2002.09.19;
Скачать: [xml.tar.bz2];

Вниз

Как в Проводнике открыть Панель Управления и Принтеры?   Найти похожие ветки 

 
MSknyaz   (2002-07-10 17:51) [0]

Как из Дельфей заставить Проводник открыть специальную папку (Панель
управления, принтеры и т.д.)?

Пытался разобраться с функцией SHGetSpecialFolderPath //Вычитал в
КД, но в своем MSDNе не нашел :(((
А также с функцией SHGetSpecialFolderLocation, но опять не
разобрался :(((((

Помогите...


 
Александр   (2002-07-10 18:53) [1]

Некоторые специальные папки (Панель управления, Принтеры и др.) можно представить в виде каскадных меню, если создать в меню Пуск или в одном из вложенных подменю (открыв его в окне) папку и присвоить ей одно из следующих имён:
для Панели управления — Имя.{21EC2020-3AEA-1069-A2DD-08002B30309D}
для папки Принтеры — Имя.{2227A280-3AEA-1069-A2DE-08002B30309D}
для папки Удаленный доступ к сети — Имя.{992CFFA0-F557-101A-88EC-00DD010CCC48}
для Корзины — Имя.{645FF040-5081-101B-9F08-00AA002F954E}

для папки Подписка — Имя.{F5175861-2688-11d0-9C5E-00AA00A45957}
для папки Шрифты — Имя.{BD84B380-8CA2-1069-AB1D-08000948F534}
для папки History — Имя.{FF393560-C2A7-11CF-BFF4-444553540000}
Имя для каждого из этих объектов вы можете задать абсолютно любое. Не забудьте только поставить точку (без пробелов) между именем и открывающей фигурной скобкой.


 
Eugene Lachinov   (2002-07-10 20:02) [2]

uses
FileCtrl, ActiveX, ShlObj;

type
TFolderType = (ftDesktop, ftRecycleBin, ftControlPanel, ftDesktopDir,
ftDrives, ftFavoriteURLs, ftFonts, ftNetwork, ftNetHoodDir,
ftDocumentDir, ftPrinters, ftPrograms, ftRecentDir, ftSendTo,
ftStartMenu, ftStartup, ftTemplates, ftFileSystem, ftCustom);

function GetFolderID(FolderType : TFolderType) : Integer;
const
CSIDL_CUSTOM = $EAFE;
FOLDERID : array[ftDesktop..ftCustom] of integer = (
CSIDL_DESKTOP, CSIDL_BITBUCKET, CSIDL_CONTROLS, CSIDL_DESKTOPDIRECTORY,
CSIDL_DRIVES, CSIDL_FAVORITES, CSIDL_FONTS, CSIDL_NETWORK, CSIDL_NETHOOD,
CSIDL_PERSONAL, CSIDL_PRINTERS, CSIDL_PROGRAMS, CSIDL_RECENT, CSIDL_SENDTO,
CSIDL_STARTMENU, CSIDL_STARTUP, CSIDL_TEMPLATES, CSIDL_DRIVES, CSIDL_CUSTOM
);
begin
Result := FOLDERID[FolderType]
end;

function ShellFolderName(FolderType : TFolderType) : string;
var
IShellMalloc : IMalloc;
IDesktopFolder : IShellFolder;
ItemIDList: PItemIDList;
StrRet: TStrRet;
begin
Result := "";
if (ShGetMalloc(IShellMalloc) = S_OK) and (IShellMalloc <> nil) then begin
if SHGetDesktopFolder(IDesktopFolder) = NOERROR then begin
if SHGetSpecialFolderLocation(0, GetFolderID(FolderType), ItemIDList) = NOERROR then try
if IDesktopFolder.GetDisplayNameOf(ItemIDList, SHGDN_FORPARSING, StrRet) = NOERROR then begin
case StrRet.uType of
STRRET_WSTR: Result := WideCharToString(StrRet.pOleStr);
STRRET_OFFSET: Result := PChar(UINT(ItemIDList) + StrRet.uOffset);
STRRET_CSTR: Result := StrRet.cStr;
end
end
finally
IShellMalloc.Free(ItemIDList);
end
end
end
end;

procedure TForm1.Button1Click(Sender: TObject);
var
S : string;
begin
SelectDirectory("", ShellFolderName(ftStartMenu), S)
end;



Страницы: 1 вся ветка

Форум: "Система";
Текущий архив: 2002.09.19;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.007 c
1-61114
VladP
2002-09-10 10:35
2002.09.19
ComponentEditor


14-61248
Devid
2002-08-20 21:46
2002.09.19
Помогите кто знает мастера!


14-61260
Пахан
2002-08-23 09:33
2002.09.19
DELPHI 6


4-61374
Alibaba
2002-07-31 12:32
2002.09.19
FindWindowEx - не работает под Win2k! Что делать?


3-61006
vich
2002-08-27 23:29
2002.09.19
Помогите! Хочу перенести данные из одной базы в другую





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский