会员登录 - 用户注册 - 网站地图 Office中国(office-cn.net),专业Office论坛
当前位置:主页 > 技巧 > Access技巧 > API > 正文

Access VBA 判断网络是否连通的多种办法(函数源码)

时间:2013-11-08 17:40 来源:ffice中国 作者:网络 阅读:
VB 利用gethostbyname判断网络是否连接

GetHostbyName API可获取域名对应的IP地址,当没有联网状态将会返回一个错误值。所以可利用它来判断是否联网。
Private Sub Form_Load()
    If IsConnectedState Then
        MsgBox "连接网络"
    Else
        MsgBox "没有联网"
    End If
End Sub

Option Explicit

Private Type WSADATA
    wversion As Integer
    wHighVersion As Integer
    szDescription(0 To 256) As Byte
    szSystemStatus(0 To 128) As Byte
    iMaxSockets As Integer
    iMaxUdpDg As Integer
    lpszVendorInfo As Long
End Type

Private Declare Function WSAStartup Lib "WSOCK32.DLL" (ByVal wVersionRequired As Integer, lpWSAData As WSADATA) As Long
Private Declare Function WSACleanup Lib "WSOCK32.DLL" () As Long
Private Declare Function gethostbyname Lib "WSOCK32.DLL" (ByVal szHostname As String) As Long
Private Const WS_VERSION_REQD = &H101

Public Function IsConnectedState() As Boolean
    Dim udtWSAD As WSADATA
    Call WSAStartup(WS_VERSION_REQD, udtWSAD)
    IsConnectedState = CBool(gethostbyname("www.baidu.com"))
    Call WSACleanup
End Function


------------------------------------------------------
如果程序在联网处理之前能先自动判断用户是否已经联网,就可提高程序运行效率。 
 
Private Sub Form_Load() 
 If IsConnected = TRUE Then 
  MsgBox (“您已经连通了Internet!”) 
 End If 
 If IsConnected = FALSE Then 
  MsgBox (“您还没有连通 Internet!”) 
 End If 
End Sub 
 
  
Option Explicit 
/*有关的API声明和定义*/ 
Public Declare Function RasEnumConnections Lib “RasApi32.dll” Alias “RasEnumConnectionsA” (lpRasCon As Any, lpcb As Long, lpcConnections As Long) As Long 

(责任编辑:admin)

顶一下
(2)
100%
踩一下
(0)
0%
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价: