检查Internet连接可用性

使用下面的代码,在这篇文章的帮助下,我正在检查用户是否有可用的Internet连接:

Private Declare Function InternetGetConnectedState _ Lib "wininet.dll" (ByRef dwflags As Long, _ ByVal dwReserved As Long) As Long Private Const INTERNET_CONNECTION_MODEM As Long = &H1 Private Const INTERNET_CONNECTION_LAN As Long = &H2 Private Const INTERNET_CONNECTION_PROXY As Long = &H4 Private Const INTERNET_CONNECTION_OFFLINE As Long = &H20 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 

这是返回以下错误,这似乎与64位系统有关:

在这里输入图像说明

我怎样才能以可靠的方式使这个代码适应32-64系统?

也许检查用户系统和google.com的响应?

添加PtrSafe Win 64位的声明:

 Private Declare PtrSafe Function InternetGetConnectedState _ Lib "wininet.dll" (ByRef dwflags As Long, _ ByVal dwReserved As Long) As Long