Come da oggetto, avrei bisogno di risolvere il problema della verifica della connessione ad internet del pc sul quale gira il programma.

Ho cercato e ricercato molto prima di postare, per paura che fosse già stato risolto, ma, ammesso e non concesso che la soluzione ci sia, non sono riuscito a trovarla (x VB6).

Ho provato vari codici che si trovano su internet relativi all'uso di "wininet.dll"

L'ultimo provato è il seguente

codice:
Private Declare Function InternetGetConnectedStateEx Lib "wininet.dll" (ByRef lpdwFlags As Long, ByVal lpszConnectionName As String, ByVal dwNameLen As Integer, ByVal dwReserved As Long) As Long

Public Function CheckInternetConnection() As Boolean
On Error GoTo ERR
    Dim aux As String * 255
    Dim R As Long
    R = InternetGetConnectedStateEx(R, aux, 254, 0)
    If R = 1 Then
        CheckInternetConnection = True
    Else
        CheckInternetConnection = False
    End If
    Exit Function
ERR:
MsgBox ERR.Description, vbOKOnly + vbCritical, "Wininet.dll"
End Function



Public Function NetConnectStatus() As Boolean    
 On Error GoTo err_DoWebRequest
     Dim strurl As String
     strurl = "http://www.google.it/"
          Dim objXML As Object
     Set objXML = CreateObject("Microsoft.XMLHTTP")
     objXML.Open "GET", strurl, False
     objXML.Send 
    If (objXML.Status = 404) Then 
        DoWebRequest = "404 Error" 
        DoWebRequest = objXML.responseText 
    Else 
        NetConnectStatus = True
     End If
     Set objXML = Nothing
     Exit Function
 err_DoWebRequest:
     NetConnectStatus = "False"
  End Function
... dove 'CheckInternetConnection' restituisce falso solo se si è scollegati dal modem (naturalmente trattasi sempre di modem ADSL, visti i tempi) e invece da vero se si è collegati al modem ma non cavo telefonico staccato
mentre la 'NetConnectStatus' restituisce false se si scollega il cavo telefonico.

Il problema è quello che ho trovato rilevato da molti, ma delle quali ho trovato soluzioni solo per VB.Net, ovvero la possibilità di impostare una sorta di timeout sul false, in quanto se si è connessi la risposta è veloce (un paio di secondi al max) altrimenti si deve attendere parecchi secondi, rasentando anche il minuto .

Anche l'apertura di connessione ADO su internet, ma... il problema è sempre lo stesso

Ho trovato parecchio materiale, non relativo al timeout, purtroppo, chi usa winsock (ma per internet?), io l'ho usato ma per un programma di messaggistica interna..., inet etc etc.


Gratissimo a chiunque mi possa essere di aiuto

Caro Gibra, ho spulciato anche sul tuo sito, ma non mi sembra di aver trovato nulla.