Obter o nome de todas as máquinas da rede
Olá.
Como obter o NOME de todas as maquinas de uma rede?
Obrigado.
Como obter o NOME de todas as maquinas de uma rede?
Obrigado.
Marcelo
Curtidas 0
Respostas
Massuda
21/12/2006
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.
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.
GOSTEI 0
Marcelo
21/12/2006
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:
Como disse, preciso do NOME das maquinas da rede.
Alguem pode me ajudar?
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?
GOSTEI 0
Marcelo
21/12/2006
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.
Esse método pode ser utilizado dessa forma:
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.
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;
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.
GOSTEI 0