André Alves de Lima

Talking about Software Development and more…

.NET Compact Framework: Finalizando a aplicação se não houver uma conexão de rede ativa

.NET Compact Framework: Finalizando a aplicação se não houver uma conexão de rede ativa

Olá pessoal, tudo certo?
 
Algumas vezes só podemos permitir que nossa aplicação para smart device desenvolvida com o .NET Compact Framework só seja executada se houver uma conexão de rede ativa.
 
Para resolver essa questão, é muito tranquilo. Primeiramente construimos uma função que retorna se uma conexão de rede está ativa ou não, da seguinte forma:

public static bool EstaConectado()
{
    bool resultado = false;

    try
    {
        IPHostEntry hostLocal = Dns.GetHostEntry(Dns.GetHostName());
        string ipDoHostLocal = hostLocal.AddressList[0].ToString();
        resultado = ipDoHostLocal != IPAddress.Parse("127.0.0.1").ToString();
    }
    catch { }

    return resultado;
}

 


Feito isso, basta ajustarmos o nosso método main() da seguinte forma:
 
[MTAThread]
static void Main()
{
    if (EstaConectado())
        Application.Run(new Form1());
    else
        MessageBox.Show("O dispositivo não possui uma conexão de rede ativa. Finalizando o processo.", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Hand, MessageBoxDefaultButton.Button1);
}

 
Com isso, se não houver uma conexão ativa ao tentarmos executar a aplicação, uma mensagem é exibida ao usuário e a aplicação não é executada.
 
Fácil, não? Espero que ajude!
 
Segue abaixo o código completo do Program.cs com as implementações dessa funcionalidade:
 
using System;
using System.Net;
using System.Windows.Forms;

namespace SmartDeviceProject1
{
    static class Program
    {
        [MTAThread]
        static void Main()
        {
            if (EstaConectado())
                Application.Run(new Form1());
            else
                MessageBox.Show("O dispositivo não possui uma conexão de rede ativa. Finalizando o processo.", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Hand, MessageBoxDefaultButton.Button1);
        }
        public static bool EstaConectado()
        {
            bool resultado = false;

            try
            {
                IPHostEntry hostLocal = Dns.GetHostEntry(Dns.GetHostName());
                string ipDoHostLocal = hostLocal.AddressList[0].ToString();
                resultado = ipDoHostLocal != IPAddress.Parse("127.0.0.1").ToString();
            }
            catch { }

            return resultado;
        }
    }
}
 
Um grande abraço e até a próxima!


André Alves de Lima.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *