Определение состояния сети (подключен - отключен) в C # - PullRequest
5 голосов
/ 01 июня 2009

Мне нужен фрагмент кода, который может определить, подключено или отключено сетевое соединение. Состояние подключения означает, что кабель подключен к Ethernet-соединению. Отключенное состояние будет означать, что кабель не подключен.

Я не могу использовать интерфейс WMI из-за того, что я работаю в Windows CE. Я не против вызвать Win32 API, но помните, что я использую Windows CE и работаю на Compact Framework.

Ответы [ 4 ]

4 голосов
/ 01 июня 2009

Самый простой способ - использовать SDNET OpenNETCF и посмотреть на OpenNETCF.Net.NetworkInformation.NetworkInterfaceWatcher , который будет вызывать события, когда NDIS отправляет уведомления (например, MEDIA_CONNECT и MEDIA_DISCONNECT). ).

Вы можете делать ту же работу без SDF, конечно. Он включает непосредственное включение драйвера NDIS и вызов IOCTL_NDISUIO_REQUEST_NOTIFICATION с дескриптором очереди сообщений P2P. Это не слишком сложно, но вам нужно многое получить, чтобы оно работало, а не протекало.

2 голосов
/ 01 июня 2009
1 голос
/ 01 июня 2009

Звоните GetAdaptersInfo и просматривайте список доступных сетевых адаптеров, пока не найдете тот, который ищете?

0 голосов
/ 01 июня 2009

Следует помнить, что сетевое соединение не равно интернет-соединению.

Звучит так, как будто вы уже поняли это, поскольку определяете «подключенный» как «кабель подключен к Ethernet-соединению», но оно повторяется.

...