Telefonszámunk: 1-472-0679

Internetkapcsolat tesztelése VBA kódból

2013-01-27 - horvimi - Kategória: Internet - Kommunikáció, Macro-VBA
Hivatkozott Excel verzio: Excel 2007 Excel 2010 Excel 2013

Ha van Internet kapcsolatunk, akkor EXCEL VBA kód segítségével az Interneten lévő forrásokat is használhatjuk, pl.

  • Megnyithatunk egy publikus weboldalt, és olvashatjuk  a tartalmát
  • Be tudunk jelentkezni egy jelszóval védett oldalra
  • GET vagy POST adatokat küldhetünk egy weboldalnak
  • Egy weboldal által visszaküldött választ fogadhatunk, majd feldolgozhatunk (JSON vagy XML)
  • stb…
Mindezekhez azonban szükséges ellenőrizni, hogy van-e egyáltalán élő internet kapcsolatunk. Ehhez nyújt segítséget a következő kód, ami a Windows egyik DLL hívását használja.

Az elején láthatjuk a Windows API függvény definíciót, majd következik az a saját függvény, ami az API hívás alapján eldönti, hogyvan-e kapcsolat vagy nincs, és logikai visszatérési értéket ad.

Az utolsó subrutin pedig bemutatja használat közben.

Csak másoljuk be egy standard modulba, és máris kipróbálhatjuk.

[vb] ‘Windows API függvény deklaráció
Private Declare Function InternetGetConnectedState _
Lib "wininet.dll" (ByRef dwflags As Long, _
ByVal dwReserved As Long) As Long

‘UDF a fenti API hívással és kiértékelésével
Function IsInternetConnected() As Boolean
Dim L As Long
Dim R As Long
R = InternetGetConnectedState(L, 0&)
If R = 0 Then
IsInternetConnected = False
Else
If R <= 4 Then
IsInternetConnected = True
Else
IsInternetConnected = False
End If
End If
End Function

‘Használati példa
Sub Test_Internet()
If IsInternetConnected() = True Then
MsgBox "Connected"
Else
MsgBox "No Internet Connection"
End If
End Sub

[/vb]

Vélemény, hozzászólás?