Thema: Delphi Domain-Server auflisten

Einzelnen Beitrag anzeigen

Schwedenbitter

Registriert seit: 22. Mär 2003
Ort: Finsterwalde
622 Beiträge
 
Turbo Delphi für Win32
 
#4
  Alt 22. Mär 2003, 14:00
Hallo,

bin gerade dabei, einen peer to peer-Messenger fürs LAN zu entwerfen. Dabei fungiert der erste Rechner auf dem das Prog gestartet wird immer als Server und die später kommen sind Clients und übernehmen auch die Serverfunktion, falls der erste wieder rausgeht.
Im Prinzip funktioniert das ganze schon, leider muß ich immer die Rechner im Netz von Hand eingeben und auch der Code von Sharky ist insofern nervig, als daß das Prog im Autostart steht und eigentlich keine Benutzereingabe nötig sein soll.

Ich habe mir jetzt folgenden Quellcode zusammengekl***, leider hat dieser einen Fehler und meine Delphi-Hilfe kennt den Befehl WNetEnumResource nicht.
Code:
Procedure TRecipForm.FormCreate(Sender: TObject);
   Procedure Enum(h: THandle);
   Var
      I            : Integer;
      nRes,cbBuf   : Integer;
      he            : THandle;
      Nr         : Array [0..99] Of TNetResource;
   Begin
      nRes:=100;
      cbBuf:=Sizeof(Nr);
      FillChar(Nr,SizeOf(Nr),0);
      WNetEnumResource(h,nRes,@Nr,cbBuf); //hier liegt das Problem!!!
      For I:=0 To nRes-1 Do
      Begin
         If (Nr[I].dwDisplayType In [RESOURCEDISPLAYTYPE_DOMAIN,
                                     RESOURCEDISPLAYTYPE_SERVER]) And
             Assigned(Nr[i].lpRemoteName) Then
               cbRecip.Items.Add(Nr[i].lpRemoteName);
         If Nr[i].dwDisplayType In [RESOURCEDISPLAYTYPE_NETWORK,
                                    RESOURCEDISPLAYTYPE_DOMAIN] Then
         Begin
            WNetOpenEnum(RESOURCE_GLOBALNET,
                         RESOURCETYPE_DISK,
                         RESOURCEUSAGE_CONTAINER,@Nr[I],he);
            Enum(he);
            WNetCloseEnum(he);
         End;
      End;
   End;
Var
   he         : THandle;
Begin
   cbRecip.Items.Clear;
   WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_DISK,
   RESOURCEUSAGE_CONTAINER, nil, he);
   Enum(he);
   WNetCloseEnum(he);
End;
Kann mir jemand helfen?

P.S. Wo im Netz kann man Hilfe (möglichst auf deutsch) zu den WNet...-Befehlen finden? - So bin ich übrigens auf Euer Forum gestoßen
Alex Winzer
  Mit Zitat antworten Zitat