скрыть

скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Google  
 

Получить пути папок в Моем Компьютере



Оформил: DeeCo

uses
   ActiveX, ShlObj;

    procedure TForm1.Button1Click(Sender: TObject);
 var
   pShell, ShellFolder: IShellFolder;
   pidl: PITEMIDLIST;
   PMalloc: IMalloc;
   sName: string;
   EnumIDList: IEnumIDList;
   pceltFetched: ULONG;
   lpName: TStrRet;
   slDirectories: TStringList;
 begin
   slDirectories := TStringList.Create;
   try
     SHGetDesktopFolder(ShellFolder);
     SHGetSpecialFolderLocation(0,CSIDL_DRIVES, pidl);
     SHGetMalloc(PMalloc);
     ShellFolder.BindToObject(pidl, nil, IID_IShellFolder, Pointer(pShell));
     pShell.EnumObjects(0,SHCONTF_FOLDERS, EnumIDList);
     while EnumIDList.Next(1,pidl, pceltFetched) = S_ok do
     begin
       pceltFetched := 0;
       lpName.uType := 0;
       pShell.GetDisplayNameOf(pidl, SHGDN_FORPARSING, lpName);
       sName := lpName.pOleStr;
       slDirectories.Add(sName);
     end;
     ListBox1.Items.Assign(sldirectories);
   finally
     pMalloc._Release;
     pMalloc := nil;
     slDirectories.Free;
   end;





Copyright © 2004-2016 "Delphi Sources". Delphi World FAQ




Группа ВКонтакте   Ссылка на Twitter   Группа на Facebook