Для определения подключена ли локальная система к сети, а также информации о типе соединения (LAN, WAN) необходимо воспользоваться функцией Windows API «IsNetworkAlive». Данная функция возвращает значение «True» если локальная система имеет сетевое подключение, в противном случае возвращает «False». Функция работает только с TCP/IP-соединениями и в качестве аргументов принимает только один параметр «lpdwFlags».
Для определения типа соединения «Local Area Network», необходимо при вызове передать параметр «NETWORK_ALIVE_LAN»:
Для определения типа соединения «Local Area Network», необходимо при вызове передать параметр «NETWORK_ALIVE_LAN»:
static int NETWORK_ALIVE_LAN = 0x00000001;Если компьютер имеет одну или несколько активных LAN-карт, функция вернет значение «True». Чтобы определить тип соединения «Wide Area Network», необходимо передать параметр «NETWORK_ALIVE_WAN»:
static int NETWORK_ALIVE_WAN = 0x00000002;Функция вернет значение «True», если компьютер имеет одно или несколько активных RAS-соединений. В случае если функция в обоих случаях вернула значение «False», это означает, что сетевое подключение отсутствует. Ниже представлен листинг вызова данной функции и вывода результата ее работы в сообщении.
[System.Runtime.InteropServices.DllImport("sensapi.dll")] private extern static bool IsNetworkAlive(ref int flags); private static int NETWORK_ALIVE_LAN = 0x00000001; private static int NETWORK_ALIVE_WAN = 0x00000002; private void Form1_Load(object sender, EventArgs e) { if (!IsNetworkAlive(ref NETWORK_ALIVE_LAN)) { if (IsNetworkAlive(ref NETWORK_ALIVE_WAN)) { MessageBox.Show("Вы подключены к Wide Area Network", "Проверка подключения", MessageBoxButtons.OK, MessageBoxIcon.Information); } else MessageBox.Show("Проблемы с определением типа покдючения!", "Проверка подключения", MessageBoxButtons.OK, MessageBoxIcon.Warning); } else MessageBox.Show("Вы подключены к Local Area Network", "Проверка подключения", MessageBoxButtons.OK, MessageBoxIcon.Information); }С помощью данной функции можно адаптировать ваше приложение к различным типам подключения к сети, будь это клиент электронной почты, или интернет-браузер. Например, операция печати может быть отложена до тех пор, пока сетевое соединение не будет восстановлено.
Дополнительную информацию по данной функции вы можете получить по следующему адресу: https://msdn.microsoft.com.
Ссылка для скачивания примера: Яндекс.Диск
Комментариев нет:
Отправить комментарий
Большая просьба, не писать в комментариях всякую ерунду не по теме!