Εμφάνιση ενός μόνο μηνύματος
  #3  
Παλιά 05-08-09, 10:38
Tassos
Guest
 
Μηνύματα: n/a
Προεπιλογή Re: Έλεγχος πρόσβασης στο Internet μέσω κώδικα

Καλημέρα σε όλους!

Επιτρέπστε μου μια μικρή διευκρίνιση.

H συνάρτηση InternetGetConnectedState() ελέγχει αν ο υπολογιστής είναι απλά συνδεμένος
με κάποιο τρόπο σε κάποια συσκευή αλλά δεν ελέγχει αν υπάρχει πρόσβαση στο Internet.
Αν υποτεθεί ότι μπλοκάρουμε την πρόσβαση στο δίκτυο μέσω κάποιου Firewall,
η συνάρτηση θα συνεχίσει να επιστρέφει True παρόλο που η κυκλοφορία έχει διακοπεί!

Η συνάρτηση αυτή θα επιστρέψει False μόνο αν ο υπολογιστής δεν είναι καν
συνδεμένος με Modem ή οποιαδήποτε άλλη (αν πχ. αποσυνδέσουμε το καλώδιο του δικτύου).

Θα πρέπει λοιπόν να ελέγξουμε αν υπάρχει πρόσβαση σε κάποιον Server της επιλογής μας πχ. Google.gr.

Γι αυτή τη διαδικασία προτείνω τον παρακάτω κώδικα:

Κώδικας:
Option Compare Database
Option Explicit

Const xFlags = -2076180480
Const TestURL = "http://www.google.gr"
Declare Function InternetOpen _
                  Lib "wininet.dll" Alias "InternetOpenA" _
                      (ByVal lpszAgent As String, _
                       ByVal dwAccessType As Long, _
                       ByVal lpszProxyName As String, _
                       ByVal lpszProxyBypass As String, _
                       ByVal lngFlag As Long) As Long

Declare Function InternetOpenUrl _
                  Lib "wininet.dll" Alias "InternetOpenUrlA" _
                      (ByVal lngI_Net As Long, _
                       ByVal lpszUrl As String, _
                       ByVal lpszHeaders As String, _
                       ByVal dwHeadersLength As Long, _
                       ByVal lngFlag As Long, _
                       ByVal dwContext As Long) As Long

Declare Function InternetCloseHandle _
                  Lib "wininet.dll" _
                      (ByVal lngI_Net As Long) As Long

Public Sub TestINetConnection()
    Dim I_Net&, MyUrl&
    I_Net = InternetOpen(vbNullString, 0&, vbNullString, vbNullString, 0&)
    If I_Net Then
        MyUrl = InternetOpenUrl(I_Net, TestURL, vbNullString, 0&, xFlags, 0&)
        If MyUrl Then
            MsgBox "You have Internet access."
            InternetCloseHandle MyUrl
        Else
            MsgBox "You do NOT have Internet access."
        End If
    End If
    InternetCloseHandle I_Net
End Sub
Φιλικά
Απάντηση με παράθεση