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.

