1 07 2010
.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.
Missa na Alemanha Copiando arquivos em VB.NET