Einzelnen Beitrag anzeigen

FHProgger

Registriert seit: 10. Jul 2004
Ort: Mühlhausen
1 Beiträge
 
Delphi 6 Enterprise
 
#6

Re: Netzwerverbinung möglich?

  Alt 26. Jan 2005, 10:14
Als erstes kann man doch einfach alle PC im Netz ermitteln, dann hat man die IPs in einer Liste und kann bei jeder IP das zugeordnete Port abfragen, ob dort das Serverprogramm läuft.
Die Procedure:

Delphi-Quellcode:
procedure TMainForm.GetLANPCs(List: TStrings);

  procedure EnumFunc(NetResource: PNetResource);
  var
    Enum: THandle;
    Count, BufferSize: DWORD;
    Buffer: array[0..16384 div SizeOf(TNetResource)] of TNetResource;
    i: Integer; S: String;
  begin
    if WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY, 0, NetResource,
    Enum) = NO_ERROR then
    try
      Count := $FFFFFFFF;
      BufferSize := SizeOf(Buffer);
      while WNetEnumResource(Enum, Count, @Buffer, BufferSize) = NO_ERROR do
        for i := 0 to Count - 1 do
        begin
          if Buffer[i].dwDisplayType = RESOURCEDISPLAYTYPE_SERVER then begin
            S:=Buffer[i].lpRemoteName;
            Delete(S,1,2);
            List.Add(S);
          end;
          if (Buffer[i].dwUsage and RESOURCEUSAGE_CONTAINER) > 0 then
            EnumFunc(@Buffer[i])
        end;
    finally
      WNetCloseEnum(Enum);
    end;
  end;

begin
  EnumFunc(nil);
end;
  Mit Zitat antworten Zitat