Pergunta

Estou precisando de um pedaço de código que pode detectar se uma conexão de rede é ligado ou desligado. O estado conectado significaria um cabo foi conectado na conexão Ethernet. Um estado desconectado significaria que não há cabo conectado.

Eu não posso usar a interface WMI devido ao fato de que eu estou rodando em Windows CE. Eu não me importo invocando a API Win32 mas lembre-se que eu estou usando Windows CE e em execução no Compact Framework.

Foi útil?

Outras dicas

A maneira mais fácil é usar SDF do OpenNETCF e olhar para o OpenNETCF.Net.NetworkInformation.NetworkInterfaceWatcher classe , que vai elevar eventos quando NDIS envia notificações (como MEDIA_CONNECT e MEDIA_DISCONNECT).

Você pode fazer o mesmo trabalho sem a SDF, é claro. Trata-se de onening o driver NDIS diretamente e chamando IOCTL_NDISUIO_REQUEST_NOTIFICATION com uma mensagem P2P identificador de fila. Não é excessivamente difícil, mas há muita coisa que você tem que acertar para que ele funcione e não vazar.

GetAdaptersInfo e percorrer a lista de adaptadores de rede disponíveis até encontrar o que você está procurando?

Uma coisa a lembrar é que uma conexão de rede é não igual a uma conexão de internet.

Parece que você já começa que porque você definir conectado como significando "um cabo é conectado à conexão Ethernet", mas vale a pena repetir.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top