![]() |
Netzwerk getrennt
Gibt es ein Ereignis/Message/API das man abfangen kann, wenn die Netzwerkverbindung getrennt wird?
(z.B. Netzwerkkabel aus der Dose ziehen) |
Re: Netzwerk getrennt
gibt es dafür einen Lösungsansatz?
|
Re: Netzwerk getrennt
|
Re: Netzwerk getrennt
|
Re: Netzwerk getrennt
Danke - da wäre ich nie drauf gekommen.
Aber leider ist diese API erst ab WinXP und .net zu haben. Brauch diese aber für Win32 (WinNT,Win2k,WinXP). Sicherlich könnte man alle Minute einen Ping absetzen, aber a) Resourcenschonender ist ein Event oder eine Message b) je schneller ich reagieren kann um so besser ist es für die Anwendung um Abläufe sperren zu können c) einen Treiber wollte ich nicht programmieren Anders kommt man da nicht ran? |
Re: Netzwerk getrennt
Hmm, bin mir nicht sicher, aber ändert sich nicht deine IP Adresse beim ausziehen des LAN Steckers?
|
Re: Netzwerk getrennt
So etwas könnte gehen:
Delphi-Quellcode:
Der Parameter bGetAll gibt an, ob er nur die erste HauptIP (False) oder alle vorhandenen IPs (True) auslesen soll.
function GetLocalIPs(bGetAll: Boolean = True): string;
type PPInAddr = ^PInAddr; var wsadata : TWSAData; hostinfo : PHostEnt; addr : PPInAddr; begin Result := ''; if(WSAStartUp($0101,wsadata) = 0) then // $0101 = Version 1.1 (Achtung: Ver 2.0 wäre $0002) try hostinfo := gethostbyname(nil); if(hostinfo <> nil) then begin addr := pointer(hostinfo^.h_addr_list); while(addr^ <> nil) do begin Result := Result + inet_ntoa(addr^^); If not bGetAll then Break; inc(addr); If addr^ <> nil then Result := Result + ^M^J; end; end; finally WSACleanUp; end; end; Ist kein Netzwerk (auch kein IP Stack,etc) vorhanden, so gibts einen leeren String zurück. Gibts einen String zurück, so kann folgendes geprüft werden: If Result = '127.0.0.1' then ... // LAN Kabel ausgesteck oder Netzwerkverbindung getrennt else ... // Mit LAN verbunden |
Re: Netzwerk getrennt
Danke.
Das Beispiel ist eine andere Art einen Ping abzusetzen ... d.h. für mich, dass ich kein Ereignis bekomme |
Re: Netzwerk getrennt
Weiss nicht warum es dir nicht gefällt, die funktion von ken_jones funzt bei mir (braucht WinSock) mit ca 4 Sekunden Verzögerung. Okay, ein Event wird nicht ausgelöst, aber das muss man abwägen ob das eine essentielle Fähigkeit ist oder obs ein Timer auch tut...
Toni |
Re: Netzwerk getrennt
Klar, der Timer wirft auch ein Ereignis ab.
Wahrscheinlich werde ich es irgendwie so machen, da ich unter WinNT keine andere Wahl habe. Mal von einer anderen Seite betrachtet. Bekommt der Server irgendeine Information, dass der Anwender sich abgestöpselt hat? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:25 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 by Thomas Breitkreuz