加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

VB6,文件不存在,我如何处理优雅?

发布时间:2020-12-17 07:19:38 所属栏目:百科 来源:网络整理
导读:我正在测试一个应用程序,它检查网络中是否存在文件.在我的测试中,我故意拉网络插件,因此找不到文件.问题是这导致我的应用程序无响应至少15秒.我在VB6中使用了FileExists()和GetAttr()函数.有谁知道如何解决这个问题? (不,我不能停止使用VB6) 谢谢, ???查理
我正在测试一个应用程序,它检查网络中是否存在文件.在我的测试中,我故意拉网络插件,因此找不到文件.问题是这导致我的应用程序无响应至少15秒.我在VB6中使用了FileExists()和GetAttr()函数.有谁知道如何解决这个问题? (不,我不能停止使用VB6)

谢谢,
???查理

解决方法

不幸的是,VB并没有让这很容易,但幸运的是Win32 API,并且从VB中调用Win32函数非常简单.

对于LAN / WAN,您可以结合使用以下Win32 API调用来告诉您远程连接是否存在而无需处理网络超时:

Private Declare Function WNetGetConnection Lib "mpr.dll" Alias _
    "WNetGetConnectionA" (ByVal lpszLocalName As String,_
    ByVal lpszRemoteName As String,ByRef cbRemoteName As Long) As Long

Private Declare Function PathIsNetworkPath Lib "shlwapi.dll" Alias _
    "PathIsNetworkPathA" (ByVal pszPath As String) As Long

Private Declare Function PathIsUNC Lib "shlwapi.dll" Alias "PathIsUNCA" _
    (ByVal pszPath As String) As Long

对于Internet,您可以使用Win32 API调用:

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

Const INTERNET_CONNECTION_MODEM = 1
Const INTERNET_CONNECTION_LAN = 2
Const INTERNET_CONNECTION_PROXY = 4
Const INTERNET_CONNECTION_MODEM_BUSY = 8

这个VB站点有更多关于path oriented functions you can call in the Win32 API through VB.的讨论

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读