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

Вниз

Открытие системных папок в проводнике   Найти похожие ветки 

 
Render   (2005-01-13 12:28) [0]

Никто случайно не знает как открыть проводником папки наподобие "Мой компьютер", "Сетевое окружение", "Сетевые подключения"???


 
DiamondShark ©   (2005-01-13 13:13) [1]

explorer.exe /e,::{Extension CLSID}
explorer.exe /e,::{Folder CLSID}\::{Extension CLSID}

My Computer {20D04FE0-3AEA-1069-A2D8-08002B30309D}
My Network Places  {208D2C60-3AEA-1069-A2D7-08002B30309D}
Control Panel {21EC2020-3AEA-1069-A2DD-08002B30309D}
Internet Explorer {871C5380-42A0-1069-A2EA-08002B30309D}


 
Render   (2005-01-13 14:27) [2]

Спасибо большое!

А как узнать список возможных {Folder CLSID}? Что такое {Extension CLSID}?


 
DiamondShark ©   (2005-01-13 15:07) [3]


> А как узнать список возможных {Folder CLSID}

Например, вот так:


procedure TForm1.Button1Click(Sender: TObject);
var
 Root: IShellFolder;
 enm: IEnumIDList;
 pidl: PItemIDList;
 Dummy: DWORD;
 Name: STRRET;
 Malloc: IMalloc;
 S: String;
 function StrretToString(pidl: PItemIDList; const str: STRRET): string;
 begin
   case Name.uType of
     STRRET_WSTR: Result := str.pOleStr;
     STRRET_OFFSET: Result := PChar(Cardinal(pidl)+str.uOffset);
     STRRET_CSTR: Result := str.cStr;
   end;
 end;
begin
 Memo1.Clear;
 OleCheck( SHGetDesktopFolder(Root) );
 OleCheck( Root.EnumObjects(0, SHCONTF_FOLDERS or SHCONTF_INCLUDEHIDDEN, enm) );
 OleCheck( SHGetMalloc(Malloc) );
 while enm.Next(1, pidl, Dummy) = S_OK do
   begin
     OleCheck( Root.GetDisplayNameOf(pidl, SHGDN_NORMAL or SHGDN_FORADDRESSBAR, Name) );
     S := StrretToString(pidl, Name);
     if Name.uType = STRRET_WSTR then Malloc.Free(Name.pOleStr);

     OleCheck( Root.GetDisplayNameOf(pidl, SHGDN_NORMAL or SHGDN_FORPARSING, Name) );
     S := S + #9 + StrretToString(pidl, Name);
     if Name.uType = STRRET_WSTR then Malloc.Free(Name.pOleStr);

     Memo1.Lines.Add(S);
   end;
end;

Можно и рекурсивно вложенные папки обойти.


 
Render   (2005-01-13 22:48) [4]

Еще одно большое спасибо! :-)



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

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

Наверх




Память: 0.45 MB
Время: 0.035 c
3-1103723724
Del
2004-12-22 16:55
2005.01.30
Лицензия на InterBase


14-1105309285
Alex_Petr
2005-01-10 01:21
2005.01.30
Интересная ситуация с покупкой компьютеров


3-1104155962
Артемиус
2004-12-27 16:59
2005.01.30
Как определить количество и имена таблиц в базе?


1-1105690836
vladimir24
2005-01-14 11:20
2005.01.30
многооконный WebBrowser


1-1105646604
Bobby Digital
2005-01-13 23:03
2005.01.30
Help file





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский