Главная страница
    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.039 c
6-1100494168
Mr
2004-11-15 07:49
2005.01.30
Передача TStream


14-1105271522
Чеширский_Кот
2005-01-09 14:52
2005.01.30
Чужие


14-1105450032
Cosinus
2005-01-11 16:27
2005.01.30
У кого стоит русский Office2000 или XP, помогите с файликами


3-1104320514
Makc
2004-12-29 14:41
2005.01.30
Как не прописывать алиас каждый раз,при запуске проги...


6-1099581365
Seeker
2004-11-04 18:16
2005.01.30
Authorization: Digest





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