Как найти все комьютеры в сети 3
Как найти все комьютеры в сети 3
Как найти все комьютеры в сети 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;