Главная страница
    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
Время: 2.114 c
1-1105706778
JohnKorsh
2005-01-14 15:46
2005.01.30
Как в старом TP7 под DOS организовать очень большой массив ?


1-1105960029
sasha-bumer
2005-01-17 14:07
2005.01.30
Flash


4-1102505115
Japp
2004-12-08 14:25
2005.01.30
Окно в ДЛЛ.


3-1104240289
}|{yk
2004-12-28 16:24
2005.01.30
Firebird и захват сервером 99% CPU


9-1098489583
Malij
2004-10-23 03:59
2005.01.30
OpenGl





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