当用腾讯浏览器看网页时,点击“文件-另存为:单个文件(*.mht)”,可以把整个网页保存下来。在没上网的时候,可以脱机浏览。请教各位大侠,这一功能如何用VB编程来实现?
我用的代码是:
'引用Microsoft CDO for Windows 2000 Library和microsoft activeX data objects 2.8 library
Private Sub Command1_Click()
Dim a As New CDO.Message
Dim b As ADODB.Stream
a.CreateMHTMLBody "http://www.****.com", cdoSuppressAll, "", ""
Set b = a.GetStream
b.SaveToFile "c:\1.mht" '保存到C盘,生成1.mht文件
MsgBox "OK"
End Sub但它生成的mht文件并不能完全把网页的内容存下来。希望大侠能给出一段完整可行的代码,急急急。
我用的代码是:
'引用Microsoft CDO for Windows 2000 Library和microsoft activeX data objects 2.8 library
Private Sub Command1_Click()
Dim a As New CDO.Message
Dim b As ADODB.Stream
a.CreateMHTMLBody "http://www.****.com", cdoSuppressAll, "", ""
Set b = a.GetStream
b.SaveToFile "c:\1.mht" '保存到C盘,生成1.mht文件
MsgBox "OK"
End Sub但它生成的mht文件并不能完全把网页的内容存下来。希望大侠能给出一段完整可行的代码,急急急。
解决方案 »
- VB计算两个日期间隔天数
- 为什么我在Windows 98系统下安装不了ADO20.exe 和ADO27.exe?
- VB保存时,需要有单引号('),
- 文件夹内文件拷贝的问题
- 看了一套用vb开发的easy editor记事本后,提问riched20.dll与richedit20a类名是什么关系?
- WebBrowser1.Refresh为什么刷新不了
- ★开发ASP组件(实例及技术文档)◆,希望大家补充AND接分!!◆技术共享★
- vb6.0 的最新的中文版的msdn哪有下载!
- 关于VB.NET中DATAGRID的用法~~~~谢谢~~~急!!!
- 请问如何判断用户是否按键 Ctrl+Alt+Delete ?
- 请教 :用InsertSymbol输入进word的特殊字符, 如何读出
- bmp流压缩成JPG流
引用
Private Sub SavePicture(szURL, fName) '保存图片
'网页路径,文件名
Dim x As XMLHTTP
Dim oStream As ADODB.Stream
Dim xx As String
Set x = New XMLHTTP
x.Open "GET", szURL, False
x.send
xx = App.Path + "\"
Set oStream = New ADODB.Stream
oStream.Type = 1
oStream.Open
oStream.Write x.responseBody
oStream.SaveToFile xx + fName
oStream.Close
End Sub'********************************************************************' 简单实现
Private Sub Command1_Click()
Call SavePicture("http://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/003/monkey/2.gif", "abc.gif")End Sub
Sub getWeb() Dim X As XMLHTTP
tmpth = "c:\temp.htm"
URL = "http://www.baidu.com/"
Set X = New XMLHTTP
X.Open "GET", URL, False
X.send
s = X.responseText
ss = "<body>"
arr = Split(s, ss)
ss = ss & arr(1)
If Dir(tmpth) <> "" Then Kill tmpth Open tmpth For Output As 1
Print #1, , ss
Close 1
WebBrowser1.Navigate2 tmpth
Set bd = WebBrowser1.Document.body
Do While bd Is Nothing
DoEvents
Set bd = WebBrowser1.Document.body
Loop
SendKeys "c:\baidu.htm"
SendKeys "{ENTER}"
WebBrowser1.ExecWB OLECMDID_SAVEAS, OLECMDEXECOPT_PROMPTUSER
Kill tmpth
End Sub
'网页路径,文件名
Dim x As XMLHTTP
Dim oStream As ADODB.Stream
Dim xx As String
Set x = New XMLHTTP
x.Open "GET", szURL, False
x.send
xx = app.path + "/"
Set oStream = New ADODB.Stream
oStream.Type = 1
oStream.Open
oStream.Write x.responseBody
oStream.SaveToFile xx + fName
oStream.Close
End Sub
' 简单实现
call SavePicture("http://expert.csdn.net/images/csdn.gif";,"abc.gif") '功能:取得网址中的所有链接名称和地址
'需要要引用 Microsoft HTML Object Library
Private Sub GetLinks()
Dim Doc As IHTMLDocument2
Dim All As IHTMLElementCollection
Dim L As Integer
Dim i As Integer
Dim Varl As Variant
Set Doc = WebBrowser1.document
Set All = Doc.images '取图片的连接 doc.links 取文字链接
L = All.length
For i = 0 To L - 1
Set Varl = All.Item(i, varempty)
List1.AddItem ("地址:" & Varl.href) 'item.innertext 取文本链接名称
Set Varl = Nothing
Next i
Set All = Nothing
Set Doc = Nothing
End Sub
'然后在查找JPG,BMP等图片文件
Sub getWeb() Dim X As XMLHTTP
tmpth = "c:\temp.htm"
URL = "http://www.baidu.com/"
Set X = New XMLHTTP
X.Open "GET", URL, False
X.send
s = X.responseText
ss = "<body"
arr = Split(s, ss)
ss = ss & arr(1)
If Dir(tmpth) <> "" Then Kill tmpth Open tmpth For Output As 1
Print #1, , ss
Close 1
WebBrowser1.Navigate2 tmpth
Set bd = WebBrowser1.Document.body
Do While bd Is Nothing
DoEvents
Set bd = WebBrowser1.Document.body
Loop
SendKeys "c:\baidu.htm"
SendKeys "{ENTER}"
WebBrowser1.ExecWB OLECMDID_SAVEAS, OLECMDEXECOPT_PROMPTUSER
Kill tmpth
End Sub