我的程序需要在机器断开网络或连上网络做相应的处理,问题是捕捉不到机器断开网络或连上网络时的消息,我也想过用一个定时器来不断查询网络状况,但是总觉的不大好,不知道各位大虾是怎么处理的?
解决方案 »
- 阿泰请进 CrystalReport 6.0
- 不论窗体上的任何控件有焦点,任何时候按下F5键时,自动调用一个函数A(),如何弄。给一个小例子,谢谢!
- 关于windows不同系统的图片显示问题
- webbrowser的document问题
- 请教关于获取网页信息的问题
- 请教怎么读写一个二进制文件
- 请问在可以在recordset中进行统计查询吗?
- 怎么样让SSTAB控件点击不同的选项卡出现不同的颜色。
- (菜鸟问题)组件里用到了一个第三方的api库xx.dll每次用都要一起copy,能否把第三方的api库封装到组件里
- 如何实现网卡开机
- 有会在表单中定义热区的吗
- 也许VB做不了这事 但还是想问问高手(分不够可以加)
Public Declare Function RasEnumConnections Lib "RasApi32.dll" Alias "RasEnumConnectionsA" (lpRasCon As Any, lpcb As Long, lpcConnections As Long) As Long
Public Declare Function RasGetConnectStatus Lib "RasApi32.dll" Alias "RasGetConnectStatusA" (ByVal hRasCon As Long, lpStatus As Any) As Long
'
Public Const RAS95_MaxEntryName = 256
Public Const RAS95_MaxDeviceType = 16
Public Const RAS95_MaxDeviceName = 32
'
Public Type RASCONN95
dwSize As Long
hRasCon As Long
szEntryName(RAS95_MaxEntryName) As Byte
szDeviceType(RAS95_MaxDeviceType) As Byte
szDeviceName(RAS95_MaxDeviceName) As Byte
End Type
'
Public Type RASCONNSTATUS95
dwSize As Long
RasConnState As Long
dwError As Long
szDeviceType(RAS95_MaxDeviceType) As Byte
szDeviceName(RAS95_MaxDeviceName) As Byte
End Type
Public Function IsConnected() As Boolean
Dim TRasCon(255) As RASCONN95
Dim lg As Long
Dim lpcon As Long
Dim RetVal As Long
Dim Tstatus As RASCONNSTATUS95
'
TRasCon(0).dwSize = 412
lg = 256 * TRasCon(0).dwSize
'
RetVal = RasEnumConnections(TRasCon(0), lg, lpcon)
If RetVal <> 0 Then
MsgBox "ERROR"
Exit Function
End If
'
Tstatus.dwSize = 160
RetVal = RasGetConnectStatus(TRasCon(0).hRasCon, Tstatus)
If Tstatus.RasConnState = &H2000 Then
IsConnected = True
Else
IsConnected = False
End IfEnd Function
你的方法只能判断当前状态的网络状况,但是不能根据网络状态的变化来触发一个事件。