Delphi World - Как найти все комьютеры в сети 3
Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
Как найти все комьютеры в сети 3

Автор: SmaLL
WEB-сайт: http://forum.vingrad.ru

function EnumerateFunc(hwnd: HWND; hdc: HDC; lpnr: PNetResource): Boolean;
const
  cbBuffer: DWORD = 16384; // 16K is a good size
var
  hEnum, dwResult, dwResultEnum: DWORD;
  lpnrLocal: array
  [0..16384 div SizeOf(TNetResource)] of TNetResource;
    // pointer to enumerated structures
  i: integer;
  cEntries: Longint;
begin
  centries := -1; // enumerate all possible entries

  // Call the WNetOpenEnum function to begin the enumeration.
  dwResult := WNetOpenEnum(
    RESOURCE_CONTEXT, // Enumerate currently connected resources.
    RESOURCETYPE_DISK, // all resources
    0, // enumerate all resources
    lpnr, // NULL first time the function is called
    hEnum // handle to the resource
    );

  if (dwResult <> NO_ERROR) then
  begin
    // Process errors with an application-defined error handler
    Result := False;
    Exit;
  end;

  // Initialize the buffer.
  FillChar(lpnrLocal, cbBuffer, 0);

  // Call the WNetEnumResource function to continue
  //  the enumeration.
  dwResultEnum := WNetEnumResource(hEnum, // resource handle
    DWORD(cEntries), // defined locally as -1
    @lpnrLocal, // LPNETRESOURCE
    cbBuffer); // buffer size

  // This is just printing
  for i := 0 to cEntries - 1 do
  begin
    // loop through each structure and
    // get remote name of resource... lpnrLocal[i].lpRemoteName)
  end;

  // Call WNetCloseEnum to end the enumeration.
  dwResult := WNetCloseEnum(hEnum);

  if (dwResult <> NO_ERROR) then
  begin
    // Process errors... some user defined function here
    Result := False;
  end
  else
    Result := True;
end;
Проект Delphi World © Выпуск 2002 - 2017
Автор проекта: Эксклюзивные курсы программирования