VB 自动判断:如果出现某个关闭的对话框就退出 20

我找了如下的代码,是判断网络是否已经连接的:PrivateDeclareFunctionInternetGetConnectedStateExLib"wininet.dl... 我找了如下的代码,是判断网络是否已经连接的:
Private Declare Function InternetGetConnectedStateEx Lib "wininet.dll" _
Alias "InternetGetConnectedStateExA" _
(ByRef lpdwFlags As Long, _
ByVal lpszConnectionName As String, _
ByVal dwNameLen As Long, _
ByVal dwReserved As Long _
) As Long
Private Enum EIGCInternetConnectionState
INTERNET_CONNECTION_MODEM = &H1&
INTERNET_CONNECTION_LAN = &H2&
INTERNET_CONNECTION_PROXY = &H4&
INTERNET_RAS_INSTALLED = &H10&
INTERNET_CONNECTION_OFFLINE = &H20&
INTERNET_CONNECTION_CONFIGURED = &H40&
End Enum

'**************************************
Private Function InternetConnected(Optional ByRef eConnectionInfo _
As EIGCInternetConnectionState, Optional ByRef _
sConnectionName As String) As Boolean

Dim dwFlags As Long
Dim sNameBuf As String
Dim lR As Long
Dim iPos As Long

On Error Resume Next
sNameBuf = String$(513, 0)
lR = InternetGetConnectedStateEx(dwFlags, sNameBuf, 512, 0&)
eConnectionInfo = dwFlags
iPos = InStr(sNameBuf, vbNullChar)
If iPos > 0 Then
sConnectionName = Left$(sNameBuf, iPos - 1)
ElseIf Not sNameBuf = String$(513, 0) Then
sConnectionName = sNameBuf
End If
InternetConnected = (lR = 1)

End FunctionPublic Function IsInNet() As Boolean
'检测是否已经以及使用什么方法连接到Internet
Dim bConnected As Boolean
Dim eR As Long
Dim sName As String
Dim sMsg As String

bConnected = InternetConnected(eR, sName)
IsInNet = bConnected
End Function
Private Sub Form_Load()
MsgBox IIf(IsInNet = True, "网络已连接!", "网络无法连接!")
End Sub

form_load中是智能判断网络是否已经连接的,我要实现的结果就是,如果对话框提示[网络已连接]则继续操作,如果提示[网络无法连接]则退出
展开
 我来答
BARUTH
2012-10-13 · TA获得超过585个赞
知道小有建树答主
回答量:140
采纳率:100%
帮助的人:85.2万
展开全部
那你不应该在Form_Load事件中判断是否联网,更好的做法是用Sub_Main()作为工程的启动入口,也就是从模块启动。右击击工程【属性】,改为从Sub_Main启动,然后添加一个模块,编写Sub_Main过程,执行判断。如果联网,则弹出程序主窗口,否则直接结束程序或者别的处理方式。这样就实现了提示未联网后不加载任何窗体。如果从窗体启动,在Load实践中判断,除非用End强制结束或者Unload Me卸载窗体,否则不管是否联网都会加载并显示一个窗体。
此外,不知道你有没有实验过,反正我自己用InternetGetConnectedState这个函数不能彻底地检验是否确实已经联网。比如我用无线网连接到ChinaNet,但是没有通过上网的用户名和密码验证,即没有在网络上注册自己的计算机,也就不能访问外网,但是这个函数返回的结果是我已经联网了。因此,建议你用每隔一段时间Ping一个服务器的办法来验证是否处于联网状态。
网海1书生
科技发烧友

2012-10-08 · 擅长软件设计、WEB应用开发、小程序
网海1书生
采纳数:12311 获赞数:26230

向TA提问 私信TA
展开全部
Private Sub Form_Load()
If IsInNet Then
MsgBox "网络已连接!"
'继续操作
Else
MsgBox "网络无法连接!"
'退出程序
End
End If
End Sub
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
龙lingfeng
2012-10-10 · TA获得超过106个赞
知道小有建树答主
回答量:258
采纳率:0%
帮助的人:165万
展开全部
将网络未连接 和 网络已连接 设为标题,
在vbs中循环检测标题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式