Ich brauche ein Ereignis zu erkennen, Internet-verbinden/trennen
Entwickeln wir ein .NET Anwendung, wo eine der Anforderungen ist zu kontrollieren, ob das system mit dem internet verbunden ist oder nicht.
Waren wir in der Lage zu bekommen .NETZ-Ereignis für "ethernet-Kabel trennen", aber wenn das modem zurückgesetzt wird, dann wird dieses Ereignis nicht ausgelöst. Ich will nicht dauernd Ping für einige URL, um dies getan da es erhebliche performance-overhead. Gibt es eine .NETZ-Ereignis, das überprüfen kann, ob das system mit dem internet verbunden ist oder nicht?
Gibt es ein Symbol in der Taskleiste, das zeigt ein Kreuz-Zeichen oder eingeschränkte Konnektivität Zeichen, wenn das system nicht conncected dem internet. Schlägt vor, dass Windows weiß, und ich möchte, Falle, Falle.
InformationsquelleAutor Nuetrino | 2010-12-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist alles abgedeckt (einschließlich der Differenz zwischen einem an das Netzwerk und mit dem Netzwerk verbinden Sie mit dem Internet) zu http://msdn.microsoft.com/en-us/library/ee264321(VS.85).aspx. Ich hoffe, Sie bedeutete, sich zu setzen, die Windows 7-tag auf deinen post, denn das alles ist ziemlich neu.
Den Schlüssel
INetworkListManager.get_IsConnectedToInternet()
was so ziemlich tut, was es auf dem zinn sagt. Sie haben zu springen, um ein bisschen zu registrieren, für die Veranstaltungen, etc. Die Code Pack umschließt einige, die sich für Sie und hat ein Netzwerk-Probe, die Sie anpassen können.InformationsquelleAutor Kate Gregory
Können Sie die NetworkChange Klasse, mit der NetworkAvailabilityChanged Veranstaltung:
Da es ein system-Ereignis, stellen Sie sicher, dass Sie die Veranstaltung löschen wenn Sie fertig sind, finden Sie in diesem Beitrag hier: Sie müssen vorsichtig sein, über die Verwendung von Ereignis-handler für NetworkChange
Fortsetzung..ich war nur neugierig, ob das jeweilige Ereignis gefangen werden können. Gegoogelt viele die nur Antworten, um den server anpingen und sehen, ob es angeschlossen ist oder nicht und das wäre eine erhebliche performance-overhead für die Anwendung, die ich entschieden, dass aus.
Das "eingeschränkte Konnektivität" - Meldung ist sehr kontextabhängig, zum Beispiel, wenn Sie hinter sind viele Router. Wenn Sie wirklich wollen, zu wissen, ob Sie "mit dem internet verbunden", müssen Sie definieren, was Sie meinen. Im Allgemeinen Fall die beste ist, um eine Verbindung zu dem Endpunkt, der Sie interessiert (vielleicht in einem anderen thread mit timer). Beachten Sie auch, dass die pings sind manchmal verboten, die durch firewalls. Wenn Sie brauchen, HTTP, müssen Sie zum testen den port 80, wenn Sie brauchen, HTTPS, müssen Sie testen, 443, etc...
InformationsquelleAutor Simon Mourier
War ich in der Lage, dieses problem zu lösen, zu einem gewissen Grad. Ich war in der Lage zu finden, einige Beispiel-code in Code-Projekt
http://www.codeproject.com/script/Articles/ListVersions.aspx?aid=34650. Vielen Dank an alle für die Antworten.
gerade den link für den Artikel wurde geschrieben von mr gregory hat mir sehr geholfen.
InformationsquelleAutor Nuetrino
Dieser arbeitete für mich!
InformationsquelleAutor Sandeep Ks
versuchen Sie es mit diesem:
InformationsquelleAutor user3047352
müssen Sie WMI verwenden .
Dies ist ein Beispiel für die disconnect-Erkennung : ( um es zu testen, erstellen Sie eine .vbs-Datei und führen Sie es )
InformationsquelleAutor Ostap