Localizar Computadores da Rede
Esta dica mostra como localizar todos os computadores de uma rede, basta que você saiba o nome do seu grupo de trabalho...
//Primeiro eu declaro a procedure abaixo:
procedure GetComputers(Workgroup : String;Retorno:TStrings);
Var
EnumHandle: THandle;
WorkgroupRS: TNetResource;
Buf: Array[1..500] of TNetResource;
BufSize: cardinal;
Entries: CARDINAL;
Result: dword;
begin
Retorno.Clear;
Workgroup := Workgroup + #0;
FillChar(WorkgroupRS, SizeOf(WorkgroupRS) , 0);
With WorkgroupRS do begin
dwScope := 2;
dwType := 3;
dwDisplayType := 1;
dwUsage := 2;
lpRemoteName := @Workgroup[1];
end;
WNetOpenEnum( RESOURCE_GLOBALNET,
RESOURCETYPE_ANY,
0,
@WorkgroupRS,
EnumHandle );
Repeat
Entries := 1;
BufSize := SizeOf(Buf);
Result := WNetEnumResource(EnumHandle,Entries,@Buf,BufSize);
If (Result = NO_ERROR) and (Entries = 1) then begin
Retorno.Add(StrPas(Buf[1].lpRemoteName));
end;
Until (Entries <> 1) or (Result <> NO_ERROR);
WNetCloseEnum(EnumHandle);
end; { Find All computers }
//===================
//Exemplo de uso:
GetComputers(MSHOME,Memo1.Lines);
Artigos relacionados
-
Artigo
-
Artigo
-
Artigo
-
Artigo
-
Artigo