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
... 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 staccatocodice: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
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.

.
Rispondi quotando