Как найти все комьютеры в сети?
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;
Код вроде бы из борландовского FAQ. На форуме приведен SmaLL
Взято с Vingrad.ru
Содержание Назад Вперед