Главная страница
    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.048 c
14-1105405511
aus
2005-01-11 04:05
2005.01.30
Как вы думаете


11-1088607618
Michael
2004-06-30 19:00
2005.01.30
TStrList в KOL


3-1103790800
Otari
2004-12-23 11:33
2005.01.30
Помощь, Как сделать фильтр с 2 словами


3-1103714579
Garry_c
2004-12-22 14:22
2005.01.30
Как из события IBQuery.BeforeDelete заблокировать


1-1106072354
W_h_i_t_e_
2005-01-18 21:19
2005.01.30
.txt в .Res





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