none
Событие отключение/подключение к интернет RRS feed

  • Вопрос

  • Необходимо написать гаджет который следит за подключением к интернет.

    Исходные данные. При подключении через роутер, можно вытянуть из роутера кабель интернета. Виндоуз отреагирует секунд через 30-40 на это. В трее появится желтый восклицательный знак и надпись нет подключения к интернет.  При подключении кабеля восекл. знак пропадает и надпись меняется на есть подключение к интернету (надписи привожу по памяти. важен смысл). Следовательно  события возникают.

    Вопрос. Как обработать эти события и сделать в гаджете какие-то действия на них? (Желательно с использованеям Javascript и WMI так как это же гаджет). Спасибо

    Сайт с гаджетами http://www.myfavoritegadgets.info/

    8 апреля 2013 г. 6:40

Ответы

  • Вы можете использовать System.Net.NetworkInformation.NetworkChange.NetworkAvailabilityChanged но он даст толькоинформацию о подключении/отключении  соединения но не о наличии подключения к Internet.

    Думаю что пинг раз в 40 секунд - это не такая большая нагрузка ни на сеть ни на ситсему.  Можете почитать про NCSI http://technet.microsoft.com/en-us/library/cc766017(WS.10).aspx. NCSI не всегда даст вам корректную информацию о состоянии подключения к Internet. Так что пинг или Get запрос это самый надежный вариан. 

    11 апреля 2013 г. 15:20

Все ответы

  • Здравствуйте!

    Переношу Вашу тему в более подходящий раздел: Настольные ПК.


    10 апреля 2013 г. 7:03
    Модератор
  • А вам принципиально реагировать на события Windows? Просто у меня уже лет пять висит своя прога, которая просто пингует yandex (на мой взгляд его сервер один из самых надежных). Таймаут пинга у меня в 10 секунд, поэтому прога реагирует быстрее винды, но можно и в 40 поставить. Кстати делал прогу под ADSL роутер на ужасной линии и она помогала понять, когда кто-то в сети занимал канал большой закачкой. В результате возникали очень частые разрывы, которые винда не сигнализировала, а прога да.

    Так как конкретной реализации на Javascript и WMI не могу подсказать я просто навел вас на мысль, думаю если вы знакомы с WMI как пинговать разберетесь.


    Женат на WPF. Тайно встречаюсь с WinRT. Не сложилось с C#!

    10 апреля 2013 г. 7:27
    Отвечающий
  • Да я так и делаю, только yahoo пингую. Но считаю это лишним расходом траффика и ресурсов, поэтому уже прикрутил на событие которое возникает на текущей сетевой. И все работает. А вот поставил роутер и снова проблема. На сетевой уже НИЧЕГО не происходит.

    11 апреля 2013 г. 13:51
  • Вы можете использовать System.Net.NetworkInformation.NetworkChange.NetworkAvailabilityChanged но он даст толькоинформацию о подключении/отключении  соединения но не о наличии подключения к Internet.

    Думаю что пинг раз в 40 секунд - это не такая большая нагрузка ни на сеть ни на ситсему.  Можете почитать про NCSI http://technet.microsoft.com/en-us/library/cc766017(WS.10).aspx. NCSI не всегда даст вам корректную информацию о состоянии подключения к Internet. Так что пинг или Get запрос это самый надежный вариан. 

    11 апреля 2013 г. 15:20
  • В WinAPI есть нужная информация, посмотрите статью Network Awareness in Windows Vista and Windows 7 и сам метод, который дает необходимую информацию get_IsConnectedToInternet 

    Упросить задачу можно, воспользовавшись оберткой над WinAPI


    Для связи [mail]

    12 апреля 2013 г. 13:28
  • Только к нему не получить доступ из Яваскрипта :(

    14 апреля 2013 г. 10:09