Для определения подключена ли локальная система к сети, а также информации о типе соединения (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.
Ссылка для скачивания примера: Яндекс.Диск



Комментариев нет:
Отправить комментарий
Большая просьба, не писать в комментариях всякую ерунду не по теме!