Как создать статус подключения к Интернету Слушатель событий в c # visual studio [duplicate]

Имейте в виду, что независимо от сценария причина всегда одинакова в .NET:

Вы пытаетесь использовать ссылочную переменную, значение которой Nothing / null. Если для ссылочной переменной значение Nothing / null, это означает, что на самом деле оно не содержит ссылку на экземпляр любого объекта, который существует в куче.

Вы либо никогда не присваивали какую-либо переменную, никогда не создавали экземпляр значения, присвоенного переменной, или вы вручную устанавливали переменную, равную Nothing / null, или вы вызывали функцию, которая установите для этой переменной значение Nothing / null.

24
задан Nuetrino 23 December 2010 в 05:08
поделиться

6 ответов

Все это охвачено (включая разницу между подключением к сети и подключением сети к Интернету) по адресу http://msdn.microsoft.com/en-us/library/ee264321 (VS. 85) .aspx . Надеюсь, вы хотели разместить этот тег Windows 7 на своем посту, потому что все это довольно новое.

Ключ INetworkListManager.get_IsConnectedToInternet(), который в значительной степени делает то, что он говорит на жестяной банке. Вы должны немного перескочить, чтобы зарегистрироваться для событий и т. Д. Code Pack обертывает некоторые из них для вас и имеет образец сети, который вы можете адаптировать.

10
ответ дан Kate Gregory 28 August 2018 в 06:47
поделиться

вам нужно использовать WMI.

Это пример для обнаружения разъединения: (чтобы проверить, что он создает файл .vbs и запускает его)

 strComputer = "."

  Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\wmi")
  Set colMonitoredEvents = objWMIService.ExecNotificationQuery _
    ("Select * from MSNdis_StatusMediaDisconnect") 

  Do While True 
    Set strLatestEvent = colMonitoredEvents.NextEvent 
    Wscript.StdOut.Write "A network connection has been lost: " 
    Wscript.StdOut.Writeline strLatestEvent.InstanceName
  Loop
-1
ответ дан Chase Florell 28 August 2018 в 06:47
поделиться

В какой-то мере я смог решить эту проблему. Мне удалось найти образец кода в проекте кода http://www.codeproject.com/script/Articles/ListVersions.aspx?aid=34650 . Всем спасибо за ответы.

, особенно ссылка на статью, которую опубликовал mr gregory, очень помог мне.

3
ответ дан Nuetrino 28 August 2018 в 06:47
поделиться

Это сработало для меня!

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Net.NetworkInformation;
namespace ConsoleApplication6
{


    class Program
    {
        private void AvailabilityChanged(object sender, NetworkAvailabilityEventArgs e)
        {

            if (e.IsAvailable)
                Console.WriteLine("Network connected!");
            else
                Console.WriteLine("Network dis connected!");
        }
        public void Form1()
        {

            NetworkChange.NetworkAvailabilityChanged += AvailabilityChanged;
        }

        static void Main(string[] args)
        {
            Program p = new Program();

            p.Form1();

            Console.ReadLine();

        }
    }
}
2
ответ дан Sandeep Ks 28 August 2018 в 06:47
поделиться

Вы можете использовать класс NetworkChange с событием NetworkAvailabilityChanged:

NetworkChange.NetworkAvailabilityChanged += myNetworkAvailabilityChangeHandler;

Поскольку это системное событие, убедитесь, что вы удалили событие, когда закончите, см. этот пост здесь: Вы должны быть осторожны с использованием обработчика событий для NetworkChange

21
ответ дан Simon Mourier 28 August 2018 в 06:47
поделиться

попробуйте:

private void AvailabilityChanged(object sender, NetworkAvailabilityEventArgs e)
        {
            if (e.IsAvailable)
                Console.WriteLine("Wi-Fi conectado " + DateTime.Now );
            else
                Console.WriteLine("Wi-Fi desconectado " + DateTime.Now);
        }


        public Inicio()
        {
            InitializeComponent();

            NetworkAvailabilityChangedEventHandler myHandler = new NetworkAvailabilityChangedEventHandler(AvailabilityChanged);
            NetworkChange.NetworkAvailabilityChanged += myHandler;
        }
1
ответ дан user3047352 28 August 2018 в 06:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: