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