![]() |
Hallo,
es funktioniert. Hab's gerade ausprobiert. Vielen herzlichen Dank für die Mühe, die Du mir gemacht hast! :-D Nee, aber mal echt: Ist echt lieb von Dir, danke! |
Zitat:
|
Guten Abend!
Vorfreude ist doch die schönste Freude! :) Es klappt jetzt nicht mehr, hatte gestern das Netzwerk nicht aktiviert und er zeigt einfach nur an, daß es nicht verbunden ist, egal, ob es aktiv ist oder nicht. Was nun? |
Hallo nochmal,
sag' mal, toyoman: Könnte es sein, daß die Funktion nur überprüft, ob der Netzwerkstecker eingesteckt ist und nicht, ob auch eine aktive Netzwerkverbindung besteht? Weil ich brauche 'ne Funktion, die testet, ob eine Netzwerkverbindung hergestellt mit einem anderen Rechner ist, oder nicht. |
Zitat:
diese Funktion prüft wirklich nur ob das Netzwerkkabel gesteckt ist oder nicht. Ob eine Netzwerkverbindung hergestellt ist oder nicht ist recht kompliziert zu prüfen vorallem weil in heutigen Laptops mehrere Netzwerkadapter fest drin sind. Z.b. Netzwerkadapter, Wireless LAN Adapter etc. Da wirst du um eine komplexe Prozedur nicht herumkommen, welche di einzelnen Adapter aus der Registry ausliest und abcheckt ob eine Verbindung besteht bzw. einen Ping ausführt. Gruss |
Gut zu wissen.
Aber selbst da ist ein Fehler, denn mein Stecker ist drinne und trotzdem zeigt er an, daß er nicht eingesteckt ist. |
Zitat:
Wieviele Netzwerkadapter und welche sind aktiviert? |
Re: Feststellen, ob Netzwerkkabel gezogen wurde?
Hallo zusammen :)
eine kleine Abwandlung des Codes von toyoman ..
Code:
sollte auf allen XP laufen :)
function NetworkConnect(AdapterNr : Integer) : Boolean;
var reg : TRegistry; i : Integer; NetworkCards : String; begin result := false; reg := TRegistry.Create(KEY_READ); reg.RootKey := HKEY_LOCAL_MACHINE; if reg.KeyExists('\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards\' +inttostr(AdapterNr)) = true then begin reg.OpenKey('\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards\' +inttostr(AdapterNr),false); NetworkCards := reg.ReadString('ServiceName'); // break; if NetworkCards <> '' then begin reg.OpenKey('\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\'+NetworkCards,false); if reg.ValueExists('DHCPRetryStatus') then begin result := true; end; end; end; reg.Free; end; procedure TForm1.Button1Click(Sender: TObject); var AdptNr : Integer; begin for AdptNr := 0 to 5 do begin if networkconnect(AdptNr) = true then showmessage('Netwerkkarte Nr.: '+ IntToStr(AdptNr) + ' hat Kontakt :)') else showmessage('Netwerkkarte Nr.: '+ IntToStr(AdptNr) + ' ist entfernt :('); end; end; |
Hallo!
Ja, unter XP Professional läuft's auch einwandfrei, aber unter allen anderen Betriebssystemen gibt's Probleme. Wir haben nun eine andere Variante angewendet. Allerdings funktioniert nocht nicht alles so, wie es soll. Als nächstes muß das OS ermittelt werden, um dann eine entsprechende Prozedur od. Funktion aufzurufen. Wer kann helfen? |
Re: Feststellen, ob Netzwerkkabel gezogen wurde?
Hi!
Hast du mal hier im Forum gesucht? Ich glaube, da mal was dazu gefunden gehabt zu haben ;) Ciao Frederic |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:13 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz