Neo_
Jul 21 2004, 12:47 AM
Little .dpr i've modded from
http://www.infojet.cz/program/delphi/tips/tip0012.htmlToo tired to find how to enumerate network computers, if someone could release it in delphi ^^...
| CODE |
program EnumWrkGrp;
{$APPTYPE CONSOLE}
uses Windows, Classes, sysutils;
const maxentries=250;
var computers:TStringList;
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 := TStringList.Create; 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, 1, Length(EnumComputerBuffer[J]. lpRemoteName))); WNetCloseEnum(EnumComputerHandle); end; end; end; WNetCloseEnum(EnumWorkGroupHandle); end;
if EnumError = ERROR_NO_MORE_ITEMS then EnumError := NO_ERROR; Result := EnumError;
end;
begin { TODO -oUser -cConsole Main : placez le code ici } writeln('EnumWrkGrp 1.0 by ...'); findcomputers; writeln('Enum ended'); computers.SaveToFile('WrkGrp.txt'); Computers.Free; end.
|
Type EnumWrkGrp.exe
then type WrkGrp.txt
| CODE |
type WrkGrp.txt
Novell Directory Services NetWare Servers APR CPTR MTS NEWS WORKGROUP WVUA7
|