Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Получение папок локального компа [D7, WinXP]


nikk ©   (2005-11-03 15:06:00) 

Проблема такая. Надо узнать имя расшареных папок на локальном компе. Связкой функций WNetOpenEnum и WNetEnumResource узнаю имена всех компов в сети, но шары компов ими не узнать. Функциями FindFirst FindNext тоэе не получается.


satan ^^._.^^   (2005-11-04 10:21:00) [1]

Попробуй так:

procedure TForm1.Button1Click(Sender: TObject);
var
hNetEnum: THandle;
Container: NETRESOURCE;
ResourceBuffer: array[1..2000] of TNetResource;
i,ResourceBuf,EntriesToGet: DWORD;
begin
Container.dwScope:=RESOURCE_GLOBALNET;
Container.dwType:=RESOURCETYPE_ANY;
Container.lpLocalName:=nil;
Container.lpRemoteName:= PChar('\\'+AddressEdit.Text);
Container.lpProvider:= nil;

WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY, RESOURCEUSAGE_CONNECTABLE or RESOURCEUSAGE_CONTAINER,
                  @Container, hNetEnum);

while TRUE do
 begin
  ResourceBuf := sizeof(ResourceBuffer);
  EntriesToGet := 2000;

  if (NO_ERROR <> WNetEnumResource(hNetEnum,EntriesToGet,@ResourceBuffer,ResourceBuf)) then
   exit;

  for i := 1 to EntriesToGet do
   Memo1.Lines.Add(string(ResourceBuffer[i].lpRemoteName));
 end;
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо