in

DotNetSide

Dot Net South Italy Developers User Group

Tips

Verificare la presenza di una connessione di rete attiva

Autore: Michele Locuratolo

In applicazioni wondows forms, può esserci l'esigenza di verificare la presenza o meno di una connessione di rete attiva. Con il framework 1.1, l'unica soluzione era quella di richiamare, via PInvoke, la Wininet.dll . Nel framework 2.0 la cosa si è molto semplificata grazie al namespace System.Net.NetworkInformation.NetworkInterface che espone un metodo GetIsNetworkAvailable(); che ritorna un bool.

Questo ci permette, ad esempio usando un timer, di controllare periodicamente lo stato della connessione e di modificare il comportamento del software di conseguenza. Nell'esempio proposto, cambieremo solo una icona nella status bar.
Il codice è il seguente:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace WindowsApplication2 {
     public partial class Form1 : Form {
         
bool _NetworkAvailable = false;
              
public Form1() {
                    InitializeComponent();
               }

          private void NetworkTestTimer_Tick(object sender, EventArgs e) {
               _NetworkAvailable = System.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable();
              
if (_NetworkAvailable) {
                   
this.toolStripStatusLabel1.Image = global::WindowsApplication2.Properties.Resources.networkConnections;
               }
else {
                   
this.toolStripStatusLabel1.Image = global::WindowsApplication2.Properties.Resources.none;
               }
          }
     }
}

Il risultato sarà quello mostrato in figura.

Only published comments... May 30 2006, 05:30 PM by VitoA
Filed under:

Comments

 

Mighell's blog said:

Oggi girovagavo un po’ senza meta tra i settaggi di Community Server (su cui gira .netSide) e sono andato...
June 4, 2006 1:05 PM
 

Mighell's Blog said:

June 4, 2006 1:06 PM
 

Mighell's blog said:


Oggi girovagavo un po’ senza meta tra i settaggi di Community Server (su cui gira .netSide) e sono...
June 4, 2006 1:09 PM
Powered by Community Server (Commercial Edition), by Telligent Systems