Listar computadores - NetView

25/11/2005

0

Boa tarde.
Gostaria de saber se existe uma maneira pratica de lista os computadores de
conectados a minha rede.
Jah consegui fazer uma [i:4b8716e5c8]gambiarra[/i:4b8716e5c8] utilizando o NetView do DOS, enviando
o conteudo para um arquivo de texto e depois tratando o seu conteudo, mas assim
gera um tempo de espera muito grande.
NÆo existe nada um pouco + pratico q isto.
Agradeceria muito se alguem pudesse me ajudar
Abracos.


Aloizio Castro

Aloizio Castro

Responder

Posts

25/11/2005

Emerson Nascimento

tente essa rotina:

var
  hEnum, dwResult, dwResultEnum : DWORD;
  lpnrLocal : array
        [0..16384 div SizeOf(TNetResource)] of TNetResource; // ponteiro para as estruturas enumeradas
  i : integer;
  cEntries : Longint;
  cbBuffer: DWORD;
begin
  centries := -1;    // enumera todas as entradas possíveis
  cbBuffer := 16384; // 16K

  // chama a função WNetOpenEnum para inciar a enumeração.
  dwResult := WNetOpenEnum(
                          RESOURCE_CONTEXT,  // Enumera o recursos atualmente conectados.
                          RESOURCETYPE_DISK, // todos os recursos
                          0,                 // enumera todos os recursos
                          nil,               // NULL
                          hEnum              // handle para os recursos
                          );

  if (dwResult <> NO_ERROR) then
  begin
    // poderia processar os erros com um manipulador de erros
    // definido na aplicação.
    Exit;
  end;

  // inicializa o buffer.
  FillChar( lpnrLocal, cbBuffer, 0 );

  // chama a função WNetEnumResource para continuar a enumeração
  dwResultEnum := WNetEnumResource(hEnum,           // manipulador
                                  DWORD(cEntries),  // definido localmente como -1
                                  @lpnrLocal,       // LPNETRESOURCE
                                  cbBuffer);        // tamanho do buffer

  ListBox1.Clear;
  // preencho uma listbox
  for i := 0 to cEntries - 1 do
  begin
    // lê cada estrutura para pegar o nome do
    // recurso remoto (lpnrLocal[i].lpRemoteName)
    ListBox1.Items.Add( lpnrLocal[i].lpRemoteName );
  end;

  // chama WNetCloseEnum para finalizar a enumeração.
  dwResult := WNetCloseEnum(hEnum);
end;



Responder

25/11/2005

Aloizio Castro

Vlw kra, funcionou direitinho....
Brigadaum....


Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar