Итак, как проверить программно, подключен компьютер к Интернету, или нет? Когда мне понадобилось решить этот вопрос, я отправился в дебри Интернета и на одном англоязычном сайте нашел простое решение.
Создадим простейшее Win Forms приложение (можно и не создавать, самая главная часть - это класс, его можно использовать где угодно). Добавим кнопку и "метку" (Label) для того чтобы вывести результат проверки. Добавляем в проект новый класс (правый щелчок на названии проекта в Solution Explorer, Add->Class...). Я назвал его ConnectionChecker:
public class ConnectionChecker { // Импортируем функцию из стандартной dll Windows [DllImport("wininet.dll")]private extern static bool InternetGetConnectedState( out int Description, int ReservedValue ) ;
// Создаем новую функцию используя API-функцию библиотеки public static bool IsConnectedToInternet( ) { int Desc ; return InternetGetConnectedState( out Desc, 0 ) ; } } Функция проверки объявлена как статический член, следовательно, для её использования не обязательно создавать экземпляр класса. Дважды щелкаем по кнопке на форме, и добавляем в созданную функцию код проверки:
private void button1_Click(object sender, EventArgs e) { string str="None"; if (ConnectionChecker.IsConnectedToInternet()) str = "Connected"; label1.Text = str; } Здесь все элементарно - строка; далее, если соединение наличествует, строка принимает значение "Connected" и выводится на форму.
Все готово. На всякий случай прилагаю файл с кодом класса и скомпилированным exe-шником программы: ссылка.
|