【问题标题】:Check Internet connection availability检查 Internet 连接可用性
【发布时间】:2015-11-12 00:36:12
【问题描述】:

使用以下代码,在this post 的帮助下,我正在检查用户是否有有效的互联网连接:

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 的响应?

【问题讨论】:

  • 你需要使用像#if vba7这样的预编译器......谷歌预编译器声明ptrsafe之类的,不是一分钟的excel,记不住:)
  • @user5414798 好的,谢谢,我去看看什么是预编译器!

标签: vba excel


【解决方案1】:

PtrSafe 添加到 Win 64 位的声明中:

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

【讨论】:

    猜你喜欢
    • 2015-11-18
    • 2023-03-10
    • 1970-01-01
    • 2019-06-09
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    相关资源
    最近更新 更多