写了一个访问一堆搜索网站的小应用程序,并将结果放入一个word文档,每天运行几百次.
它将单个搜索结果保存在许多本地文件夹中,以便下次搜索这些单词时,它会在本地抓取它们,而不是再次加载网站.
这很好 - 即使它不快.人们印象深刻,因为直到几个星期前他们通过装载六个不同的搜索网站,搜索,然后将结果复制并粘贴到word文档中手动完成.
但是,我们办公室的互联网不可靠,并且已经过了半天.这意味着在本地文件夹中保存了大约400个错误搜索,并将其插入到最终文档中.
当一个人在搜索时,他们可以判断互联网是否被破坏,他们会在以后进行搜索.显然,这个应用程序无法分辨,因为我没有使用API或任何东西,因为我只能使用VBA环境(我甚至不允许使用MZ工具),我需要找到一些方法来在继续执行程序流程之前检查互联网是否正常工作,而不依赖于过多的引用,并且最好不使用屏幕抓取短语"404 Page Not Found".
我对VB不太熟悉,VBA在很多方面毁了我,所以可能有一些简单的方法可以做到这一点,这就是我在这里问的原因.
感谢任何帮助.
显然,你的问题有很多层次.您应该首先定义"连接到互联网",然后继续开发后备策略,包括在失败时不写无效文件.
至于"我连接"问题,您可以尝试使用Win32 API:
Private Declare Function InternetGetConnectedState Lib "wininet.dll" _ (ByRef dwflags As Long, ByVal dwReserved As Long ) As Long Public Function GetInternetConnectedState() As Boolean GetInternetConnectedState = InternetGetConnectedState(0&,0&) End Function
虽然取决于您的网络设置(代理/ NAT /防火墙限制等),Windows可能对此有不同的看法.
尝试获取您感兴趣的页面,检查HTTP标头中的返回状态(网关超时,404,无论您在"不起作用"时发生什么),也可能是一种方法.
您可以使用MSXML库并使用XMLHttpRequest类来检查事物
例如
On Error Resume Next Dim request As MSXML2.XMLHTTP60 request.Open "http://www.google.com" request.Send Msgbox request.Status
状态将为您提供请求发生的HTTP状态代码.您可能需要进行更多检查,具体取决于您的方案.
希望有所帮助.