Я уже знаю, как проверить, есть ли подключение к Интернету. Но я хочу, чтобы эта функция была вызвана, когда пользователь подключает линию LAN или подключается к сети Wi-Fi. В основном я создаю Авто-Вход для своего университета.Вызов функции C# при подключении к Wi-Fi или Lan
ответ
На сегодняшний день самым простым методом является попытка периодически запускать стандартную процедуру автоматического входа в систему, если она работает, все хорошо, и пользователь вошел в систему, если нет, то нет соединения. Нет смысла пытаться определить, ПОЧЕМУ нет связи, если вы не используете какое-либо приложение для диагностики сетевого подключения.
Возможно, у вас есть поток слушателей, который просто проверяет статус подключения к Интернету и поднимает событие, если соединение появилось или потеряно.
Чтобы ответить на ваш точный вопрос, см дубликата вопрос на I need a event to detect Internet connect/disconnect
Но вы выбрали простой и Sanest вариант; просто попробуйте Войти через каждые 3 секунды или около того, пока вы не получите ответа сервера (который может быть «Неверное имя пользователя/пароль» ...)
NetworkInterface[] nics=NetworkInterface.GetAllNetworkInterfaces();
foreach (NetworkInterface adapter in nics)
{
if (adapter.OperationalStatus == OperationalStatus.Up)
{
if (adapter.NetworkInterfaceType == NetworkInterfaceType.Wireless80211)
{
Console.WriteLine("Wifi");
}
}
}
NetworkInterfaceType.Lan работает для LAN
Этот ответ является потенциально полезным для некоторых, но, похоже, не обращается к фактическому вопросу, заданному здесь, то есть к _react_ к изменениям в состоянии сети. –