I want to create an easy VBS to save a web-page to MHT (MHTML). I saw many examples through a google's search, but they were very confusing because all of them also intended to send an eMail after saving the MIME file. I just want to save a web-page to MHT; not to send eMail!!
Here are some "fragments of code" I saw:
Set cdo_msg = CreateObject ("CDO.Message")
Set ado_stream = CreateObject ("ADODB.Stream")
.CreateMHTMLBody
.GetStream
.DataSource.SaveToObject
.SaveToFile
Can you please help me to make an easy VBS just to save a web-page to MHT?
All examples seems to be totally wrong (I tried copy-paste and always got errors).
Here is one:
Set cdo_message_object = CreateObject("CDO.Message")
Set stream_ado_object = CreateObject("ADODB.Stream")
cdo_message_object.CreateMHTMLBody "http://en.wikipedia.org/wiki/Array", 0, "",""
stream_ado_object.GetStream
stream_ado_object.SaveToFile "C:\array.mht"
The line
cdo_message_object.CreateMHTMLBody (...)
always gives error!!! I tried:
cdo_message_object.CreateMHTMLBody "http://en.wikipedia.org/wiki/Array", 0, "",""
cdo_message_object.CreateMHTMLBody (http://en.wikipedia.org/wiki/Array, 0, "","")
cdo_message_object.CreateMHTMLBody ("http://en.wikipedia.org/wiki/Array", 0, "","")
None worked :(
What a great mystery!!!!!
Take a look at this VBS:
'MakeMHT.vbs
Const adSaveCreateNotExist = 1
Const adSaveCreateOverWrite = 2
Const adTypeBinary = 1 'Binary data
Const adTypeText = 2 '(Default) Text data
URL = "http://www.paulsadowski.com/"
DiskFile = "C:\test.mht"
Set objMessage = CreateObject("CDO.Message")
objMessage.CreateMHTMLBody URL
SaveToFile objMessage, DiskFile
Sub SaveToFile(Msg, Fn)
Dim Strm, Dsk
Set Strm = CreateObject("ADODB.Stream")
Strm.Type = adTypeText
Strm.Charset = "US-ASCII"
Strm.Open
Set Dsk = Msg.DataSource
Dsk.SaveToObject Strm, "_Stream"
Strm.SaveToFile Fn, adSaveCreateOverWrite
End Sub
This works fine.
Now look at this one (everything is the same, except the URL itself):
'MakeMHT.vbs
Const adSaveCreateNotExist = 1
Const adSaveCreateOverWrite = 2
Const adTypeBinary = 1 'Binary data
Const adTypeText = 2 '(Default) Text data
URL = "http://www.yahoo.com/"
DiskFile = "C:\test.mht"
Set objMessage = CreateObject("CDO.Message")
objMessage.CreateMHTMLBody URL
SaveToFile objMessage, DiskFile
Sub SaveToFile(Msg, Fn)
Dim Strm, Dsk
Set Strm = CreateObject("ADODB.Stream")
Strm.Type = adTypeText
Strm.Charset = "US-ASCII"
Strm.Open
Set Dsk = Msg.DataSource
Dsk.SaveToObject Strm, "_Stream"
Strm.SaveToFile Fn, adSaveCreateOverWrite
End Sub
Why the hell this second scripts causes an error - «(12,1) CDO.Message.1: Invalid syntax»??????????
Everything is exactly the same except:
URL = "http://www.paulsadowski.com/" => => URL = "http://www.yahoo.com/"