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