Retornando nome dos computadores em rede
Bom dia ....
Tive buscando no forum mais naum consegui resolver meu problema....
Gostaria de pegar o nome (apenas o nome) de todos os computadores de uma mesma rede e listar num memo
alguem poderia me ajudar?
Tive buscando no forum mais naum consegui resolver meu problema....
Gostaria de pegar o nome (apenas o nome) de todos os computadores de uma mesma rede e listar num memo
alguem poderia me ajudar?
Output
Curtidas 0
Respostas
Output
19/12/2006
Pessoal.... alguem me ajude....
to precisando urgente . rs
to precisando urgente . rs
GOSTEI 0
Campsoft
19/12/2006
Cara, achei esse codigo em 3 minutos no google.
Testa ai, nem testei.....
Originalmente ele foi feito em d5, mais pode-se implementar.
Retirei daqui:
[url]http://www.delphi3000.com/articles/article_1845.asp?SK=network[/url]
ps.: tem que se registrar no site e logar antes.
Espero ter ajudado
Abraços.
Testa ai, nem testei.....
Originalmente ele foi feito em d5, mais pode-se implementar.
unit FindComp; interface uses Windows, Classes; function FindComputers: DWORD; var Computers: TStringList; implementation uses SysUtils; const MaxEntries = 250; function FindComputers: DWORD; var EnumWorkGroupHandle, EnumComputerHandle: THandle; EnumError: DWORD; Network: TNetResource; WorkGroupEntries, ComputerEntries: DWORD; EnumWorkGroupBuffer, EnumComputerBuffer: array[1..MaxEntries] of TNetResource; EnumBufferLength: DWORD; I, J: DWORD; begin Computers.Clear; FillChar(Network, SizeOf(Network), 0); with Network do begin dwScope := RESOURCE_GLOBALNET; dwType := RESOURCETYPE_ANY; dwUsage := RESOURCEUSAGE_CONTAINER; end; EnumError := WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY, 0, @Network, EnumWorkGroupHandle); if EnumError = NO_ERROR then begin WorkGroupEntries := MaxEntries; EnumBufferLength := SizeOf(EnumWorkGroupBuffer); EnumError := WNetEnumResource(EnumWorkGroupHandle, WorkGroupEntries, @EnumWorkGroupBuffer, EnumBufferLength); if EnumError = NO_ERROR then begin for I := 1 to WorkGroupEntries do begin EnumError := WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY, 0, @EnumWorkGroupBuffer[I], EnumComputerHandle); if EnumError = NO_ERROR then begin ComputerEntries := MaxEntries; EnumBufferLength := SizeOf(EnumComputerBuffer); EnumError := WNetEnumResource(EnumComputerHandle, ComputerEntries, @EnumComputerBuffer, EnumBufferLength); if EnumError = NO_ERROR then for J := 1 to ComputerEntries do Computers.Add(Copy(EnumComputerBuffer[J].lpRemoteName, 3, Length(EnumComputerBuffer[J].lpRemoteName) - 2)); WNetCloseEnum(EnumComputerHandle); end; end; end; WNetCloseEnum(EnumWorkGroupHandle); end; if EnumError = ERROR_NO_MORE_ITEMS then EnumError := NO_ERROR; Result := EnumError; end; initialization Computers := TStringList.Create; finalization Computers.Free; end.
Retirei daqui:
[url]http://www.delphi3000.com/articles/article_1845.asp?SK=network[/url]
ps.: tem que se registrar no site e logar antes.
Espero ter ajudado
Abraços.
GOSTEI 0
Output
19/12/2006
Desculpe mais naum consegui e naum entendi coimo usar esta unit ...????
Tentei Memo1.Lines.Add(IntToStr(FindComputers));
Tentei Memo1.Lines.Add(IntToStr(FindComputers));
GOSTEI 0
Output
19/12/2006
Mais alguma dica pessoal ...?
GOSTEI 0
Marcelo
19/12/2006
Veja o seguinte tópico: http://forum.clubedelphi.net/viewtopic.php?t=83146
GOSTEI 0
Output
19/12/2006
Resolvido .... ja consegui
GOSTEI 0