环境VB6+WINXP
打开VB6,新建工程
添加部件Microsoft Internet Transfer Controls.
在form中添加2个按钮,2个文本框和Inet控件
代码如下:
Option Explicit
'这段代码使用了GetHeader来返回页面信息,比较准确一些
'可以得到文件最后修改日期,文件大小等等
'用这个办法还可以判断一个文件是否存在
Private Sub Command1_Click()
Dim a As String
Dim str As String
Dim RetCode As Long
Inet1.OpenURL "http://localhost/xml/tt.htm"
If Inet1.StillExecuting Then
DoEvents
End If
'可以看到所有的项目
MsgBox Inet1.GetHeader
'得到修改日期时间是格林时间,将它转换北京时间
str = Inet1.GetHeader("Last-modified")
str = Replace(Right(str, Len(str) - InStr(1, str, ",") - 1), "GMT", "")
Text1.Text = CDate(Format(str, "yyyy/mm/dd hh:mm:ss"))
MsgBox Inet1.GetHeader("content-length")
RetCode = Val(Mid(Trim(Inet1.GetHeader), 10, 3))
Select Case RetCode
Case 200
MsgBox "成功"
Case 404
MsgBox "没有发现"
Case Else
MsgBox "Error"
End Select
End Sub
'这段代码简单的判断了是否与internet连接
'如果连接,得到网页源码并且保存
Private Sub Command2_Click()
Inet1.Cancel
If Len(Inet1.OpenURL("http://localhost/xml/tt.htm")) <> 0 Then
MsgBox "已经连接"
Text2.Text = Inet1.OpenURL("http://localhost/xml/tt.htm")
If Inet1.StillExecuting Then
DoEvents
End If
'保存到文件
Open App.Path & "/index.htm" For Output As #1
Print #1, Text2.Text
Close #1
Else
MsgBox "没有连接"
End If
End Sub.
老兵出了个 查找网站名次的工具 偶想他肯定就是在某某网站查的 于是用WSockExpert抓包 得到了那个网站 发现他是通过http://data.alexa.com/data?cli=10&dat=snba&url=网站地址
这样来查的 于是用VB很简单就写了这么个工具
先加入INET控件 这个在执行后是不显示的 想放哪都行 然后
Private Sub Command1_Click()
webstr = Inet1.OpenURL("http://data.alexa.com/data?cli=10&dat=snba&url=" & Text1.Text)
webnum1 = InStr(webstr, "POPULARITY")
webnum1 = InStr(webnum1, webstr, "TEXT") + 6
webnum2 = InStr(webnum1, webstr, "/>") - 1
web1 = Mid(webstr, webnum1, (webnum2 - webnum1))
Text2 = web1
End Sub
这样就把 TEXT="624891" /> 中的 624891显示在text2.text中了
测试一下 没错呵呵 自己写个专用 虽然不怎么好看 但是功能和他的一样 自己也是可以美化的~
ps:
指出几点问题:)
1.
=============================================
OpenURL 方法是同步传输 所以没有必要
If Inet1.StillExecuting Then
DoEvents
End If
附:MSDN上关于同步异步的说明
同步和异步传输
OpenURL 方法以同步方式传输数据。在这里,同步指的是传输操作未完成之前,不能执行其它过程。这样数据传输就必须在执行其它代码之前完成。
而 Execute 方法以异步方式传输数据。在调用 Execute 方法时,传输操作与其它过程无关。这样,在调用 Execute 方法后,在后台接收数据的同时,即可同时执行其它代码。
对 Internet Transfer 控件的使用者来说这意味着什么?简单地说,用 OpenURL 方法能够直接得到可保存到磁盘的数据流(如上所述),或者直接在 TextBox 控件中阅览(如果数据是文本格式的)。从另一方面说,如果用 Execute 方法获取数据,则必须用 StateChanged 事件监视该控件的连接状态。当达到适当的状态时,调用 GetChunk 方法从控件的缓冲区获取数据。下面更详细地讨论这一操作。
===========================================
2.
===========================================
您并没有将GMT转成北京时间 只是作了格式转换
===========================================
3.根据返回代码 判断不一定总是有效 是和具体的Web服务器有关 不同的服务器返回不同 至少我在JRUN WEB SERVER上试过 就算你请求一个不存在的文件,也返回200,
===========================================
MsgBox Inet1.GetHeader("content-length")
RetCode = Val(Mid(Trim(Inet1.GetHeader), 10, 3))
Select Case RetCode
Case 200
MsgBox "成功"
Case 404
MsgBox "没有发现"
Case Else
MsgBox "Error"
End Select
End Sub