Selecao DevMedia QUERO SER PRIME

Fórum Obter o nome de todas as máquinas da rede #335019

21/12/2006

0

Olá.

Como obter o NOME de todas as maquinas de uma rede?

Obrigado.


Marcelo

Marcelo

Responder

Posts

21/12/2006

Massuda

Teve um tópico recente sobre isso...

http://forum.clubedelphi.net/viewtopic.php?t=83096

...se quiser outras implementações, :arrow: [url=http://forum.clubedelphi.net/search.php]pesquise[/url] o fórum por WNetEnumResource.


Responder

Gostei + 0

21/12/2006

Marcelo

Caro amigo.

A unit listada nesse tópico, não resolve meu problema, pois quero o NOME das maquinas, não o nome da REDE. Aproveitando a ocasiao, respondo a dúvida do autor do topico, informando como deve proceder para utilizar a unit:
  FindComputers;
  Memo1.Lines := Computers;

Como disse, preciso do NOME das maquinas da rede.

Alguem pode me ajudar?


Responder

Gostei + 0

21/12/2006

Marcelo

Eu criei um método que obtem o nome da maquina, mas o métodos faz isso apenas com partições mapeadas na maquina local.
procedure obtemComputadoresMapeados( mapeados: TStrings );
function getTamanho( txt: String ): Word;
var
 i: Word;
begin
  for i := 3 to Length( txt ) do  // inicia no 3, para eliminar as \\ iniciais
    if txt[i] = ´\´ then
      Break;
  Result := i-3;  // retorna -3, para pegar apenas o nome do computador
end;
var
 i: Integer;
 caminho, drive: String;
 tamanho: Cardinal;
begin
  SetLength( caminho, 255 );
  tamanho := 255;
  mapeados.Clear;
  for i:= 0 to 25 do begin
    drive:= chr( ord(´A´) + i ) + ´:´;
    if WNetGetConnection( pchar( drive ), pchar( caminho ), tamanho ) = NO_ERROR then
      mapeados.Add(Copy(caminho, 3, getTamanho(caminho)));
  end;
end;
Esse método pode ser utilizado dessa forma:
  obtemComputadoresMapeados(Memo1.Lines);

Mas o que preciso é obter o NOME das maquinas que estão na rede, independente de que estejam ou não com alguma partição mapeada.


Responder

Gostei + 0

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

Aceitar