Newsgroup: it.comp.lang.visual-basic
Titolo: Browser

Ho realizzato un piccolo browser ma devo far comparire una form di
avvertimento quando non si è collegati ad internet come faccio??
Ho provato con             web.Offline = True       ma risulta sempre false
e quindi il form compare anche quando sto navigando!!

 wrote in message
news:k4_J5.30348$3K3.7...@news.infostrada.it...


 wrote in message
news:8tcu0l$mglhc$1...@ID-56381.news.dfncis.de...


 wrote in message
8tl2su$n1ts0$1...@ID-56381.news.dfncis.de...


 wrote in message
8tl2su$n1ts0$1...@ID-56381.news.dfncis.de...



Ed hai ragione !
Sono andato a cercare su MSDN, da cui copio il seguente testo:
HOWTO: Detecting If You Have a Connection to the Internet
----------------------------------------------------------------------------
----
The information in this article applies to:
Microsoft Internet Explorer (Programming) versions 4.0, 4.01, 4.01 SP1, 4.01
SP2, 5
----------------------------------------------------------------------------
----
SUMMARY
Many of you want to know if a computer has an active Internet connection
before trying to connect to the Internet using the WinInet API or some other
communication interface. The internet connection is important if you don't
want your application to cause Windows to automatically dial the default
Internet modem connection.
This article provides a mechanism for determining if an Internet site is
accessible without the risk of you being prompted to dial into another
Internet Service Provider.
MORE INFORMATION
Usually the best way to determine if you have a connection to a particular
computer is to attempt the connection. If the autodial feature of Windows is
enabled then attempting the connection may cause the default Internet dialup
connectoid to be opened, and you will be prompted with your credentials to
connect.
To avoid having the default Internet connectoid dialed, the
InternetGetConnectedState function can be used to determine if there is a
default Internet dialup connectoid configured and whether it is currently
active or not. If there is a default Internet dialup connectoid configured
and it is not currently active then InternetGetConnectedState will return
FALSE. If InternetGetConnectedState returns TRUE then you can attempt to
connect to the Internet resource without fear of being prompted to connect
to another Internet Service Provider.
The following code demonstrates how you would do this:
if (InternetGetConnectedState(...) == FALSE)
{
    // Don't attempt connection or it will bring up the dialog
    ...
}
else
{
    file://Attempt connection
    if (InternetOpenURL(...) == NULL)
    {
        // Call failed
        err = GetLastError();
        if ((err == ERROR_INTERNET_NAME_NOT_RESOLVED) ||
            (err == ERROR_INTERNET_CANNOT_CONNECT) ||
            (err == ERROR_INTERNET_TIMEOUT))
        {
            // probably not connected...handle appropriately
            ...
        }
    }
    // We're connected!!!
    ....
}
You cannot rely solely on the fact that InternetGetConnectedState returning
TRUE means that you have a valid active Internet connection. It is
impossible for InternetGetConnectedState to determine if the entire
connection to the Internet is functioning without sending a request to a
server. This is why you need to send a request to determine if you are
really connected or not. You can be assured however that if
InternetGetConnectedState returns TRUE, that attempting your connection will
NOT cause you to be prompted to connect to the default Internet Service
Provider.
Be aware that InternetGetConnectedState only reports the status of the
default Internet connectoid on Internet Explorer 4.x. If a nondefault
connectoid is connected, InternetGetConnectedState always returns FALSE
(unless a LAN connection is used). With Internet Explorer 4.x configured to
use a LAN connection, InternetGetCo nectedState always returns TRUE.
Internet Explorer 5 behaves differently. If you are currently dialed into a
different dial-up in Internet Explorer 5, InternetGetConnectedState reports
dial-up connection status as long as any connectoid is dialed or an active
LAN connection exists.
There are some other ways to try to determine if you currently have a
connection to a particular network resource. The IsDestinationReachable()
function can be used to find out if there is a current connection to an
address. However, he IsDestinationReachable() function is only concerned
with whether the IP address is reachable from your computer. It does not
work through HTTP proxies or firewalls that restrict ICMP ping packets.
It is also possible to use RasEnumConnections to enhance your code so that
you can tell if there is an active dialup connection that might have
Internet access even though it is not the default Internet dialup
connectoid.
Additional query words:
Keywords : kbIE kbIE400 kbIE401sp1 kbIE401sp2 kbIE500 kbGrpInetServer
kbDSupport kbIEFAQ
Version : WINDOWS:4.0,4.01,4.01 SP1,4.01 SP2,5
Platform : WINDOWS
Issue type : kbhowto
Technology :
Sembra quindi che la InternetGetConnectedState da sola non basti. C' e' da
dire che se ci riferisce ad un pc con collegamento ad internet via modem, ci
si puo' far enumerare le connessioni attive.
La dichiarazione potrebbe essere:
Public Declare Function RasEnumConnections Lib "RasApi32.DLL" Alias
"RasEnumConnectionsA" (lprasconn As Any, lpcb As Long, lpcConnections As
Long) As Long
Se la funziona ritorna zero significa che ha avuto successo, quindi il
valore contenuto il lpcConnections ci dice quante connessioni RAS attive ci
sono in questo momento. Se lpcConnections vale zero allora non siamo
collegati ad internet.
Fammi sapere come e' andata.
Ciao
Aldo