Zum Inhalt springen

Delphi und Netzwerk


DrScherzkeks

Empfohlene Beiträge

na ich benötige für ein programm eine liste aller die sich im Netzwerk befinden es ist eigentlich egal ob das nun die IP oder der Name der Personen ist ... ich habe allerdings keine ahnung wie ich das eine noch das andere hin bekomme .. eine Funktion die einen Ping simuliert wäre nicht schlecht ...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Moinsen!

Hier ist mal ein Tip, wie du die Benutzer einer NT-Domain heraus kriegst <<click>>

Und das hier <<click>> kannst du benutzen, um einen Computer von der Netzwerkumgebung auszuwählen!

Ansonsten schau dir die anderen Seiten dort mal an, da findest du bestimmt das Passende!

Bis denn dann!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also die Computernamen kriegt man ganz einfach raus:

Schreib einfacdh ne Funktion, die Die folgenden Funktionen verwendet: WNetOpenEnum, WNetCloseEnum und WNetEnumResource. Ist allerdings ein riesiger Aufwand: ich post mal den Quelltext zur ermittlung aller Rechnernamen in allen Domains:

Function GetComputerNames: TStringList;

Var

neh1, neh2, neh3: Cardinal;

Count: Cardinal;

x, y, z: Integer;

net1, net2, net3: PNetResource;

tmpnet1, tmpnet2, tmpnet3: PNetResource;

netsize1, netsize2, netsize3: Cardinal;

Begin

Result := TStringList.Create;

Try

WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_DISK, 0, Nil, neh1);

Try

Count := $FFFFFFFF;

NetSize1 := $FFFF;

GetMem(Net1, NetSize1);

Try

While WNetEnumResource(neh1, Count, net1, netsize1) <> ERROR_NO_MORE_ITEMS Do

Begin

tmpnet1 := net1;

If Count = 0 Then

Break;

For X := 0 To Count - 1 Do

Begin

WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_DISK, 0, tmpnet1, neh2);

Try

Count := $FFFFFFFF;

NetSize2 := $FFFF;

GetMem(Net2, NetSize2);

Try

While WNetEnumResource(neh2, Count, net2, netsize2) <> ERROR_NO_MORE_ITEMS Do

Begin

tmpnet2 := net2;

If Count = 0 Then

Break;

For Y := 0 To Count - 1 Do

Begin

WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_DISK, 0, tmpnet2, neh3);

Try

Count := $FFFFFFFF;

NetSize3 := $FFFF;

GetMem(Net3, NetSize3);

Try

While WNetEnumResource(neh3, Count, net3, netsize3) <> ERROR_NO_MORE_ITEMS Do

Begin

tmpnet3 := net3;

If Count = 0 Then

Break;

For Z := 0 To Count - 1 Do

Begin

Result.Add(String(tmpnet3^.lpRemoteName));

Inc(tmpnet3);

End;

End;

Finally

FreeMem(Net3);

End;

Finally

WNetCloseEnum(neh3);

End;

Inc(tmpnet2);

End;

End;

Finally

FreeMem(Net2);

End;

Finally

WNetCloseEnum(neh2);

End;

Inc(tmpnet1);

End;

End;

Finally

FreeMem(Net1);

End;

Finally

WNetCloseEnum(neh1);

End;

Except

On E: Exception Do

Begin

MessageDlg(E.ClassName + ': ' + E.Message, mtError, [mbOK], 0);

Result.Free;

Result := Nil;

End;

Rnd;

End;

Auf der Nächsten Verschachtelungsebene wrde dir das Programm dann alle Freigabenamen aller Rechner in Allen Domains von Allen Netzwerken zurückgeben ... Weitere Hilfe gibts bei den Funktionen die mit WNet anfangen in der Win32.hlp (Microsoft Programmer's Guide) ... dem wohl unbeliebtesten Schriftstück der Delphidoku???

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...