2013-10-17 24 views
5

Mam aplikację pulpitu w WPF i C# opracowany w ramach klienta .Net 4.0 Framework, który ma pokazać lub ukryć niektóre dane w zależności od tego, czy Internet jest dostępny, czy nie na PC. Oznacza to, że muszę być w stanie wykryć tak szybko, jak to możliwe, jeśli internet jest odłączony lub podłączony, aby zareagować. (Przykładem może być rozłączyć się z siecią bezprzewodową lub odłączenie kabla sieciowego)Otrzymuj powiadomienia, gdy internet jest podłączony lub odłączony

Jak badałem trochę znalazłem, że zdarzenie nie istnieje w klasie NetworkChange zwanego NetworkAvailabilityChanged odpala przy każdej zmianie połączenia (link to docs).

Rozwijam się na komputerze z systemem Windows 8, a kiedy go wypróbuję, zdarzenie nie jest uruchamiane, ale po uruchomieniu aplikacji w systemie Windows 7 zdarzenie jest uruchamiane. Tak jak w dokumentach mówi się o zgodności z ramą 4.0 dla tego zdarzenia do Windows 7, ale patrząc na to samo wydarzenie w dokumentach do kompatybilności z framework 4.5 mówi również o Windowsie 8.

Problemem jest to, że nawet jeśli przełącznik ramy docelowej projektu do 4,5 (co nie jest pomysłem) zdarzenie nie zadziała na Windows 8.

Czy są jakieś problemy niekompatybilności, że jestem nie zdając sobie sprawy? Czy istnieje lepszy sposób na otrzymywanie powiadomień o zmianie połączenia?

muszę jeśli to możliwe rozwiązanie dla klienta Framework 4.0, który działa w systemie Windows Vista, 7 i 8

+0

http://stackoverflow.com/questions/1085045/check-whether-internet-connection-is-available-d-c-sharp/7536247#7536247 –

+0

Sprawdź stan karty sieciowej na obu komputerach. Czy oba mają * wszystkie * karty sieciowe ze statusem niepodłączonym? –

Odpowiedz

1

Odpowiedź #William Riley pomoże mi znaleźć sposób na zrobienie tego.

W końcu doszedłem do sedna, używając Menedżera listy sieci z Windows API poprzez implementację COM firmy Microsoft. (Można sprawdzić niektóre examples)

Jest ważne, aby dodać prawidłową odniesienie do projektu:

enter image description here

Wtedy właśnie można śledzić na przykładzie z linku, jest bardzo krótki i bezpośredni do punkt.

+0

Cieszę się, że mogę pomóc. –

+0

Link nie działa –