如何能够将TWebBrowser当前浏览的网页保存为MHT格式的文件,条件是不能有保存对话框弹出;如何才能取出当前保存好的MHT格式的完整原码
解决方案 »
- 请问哪儿能找到sample下控件的帮助?主要是TShellTreeview和TShellListView的。
- 请问大家。这个奇怪问题该如何解答呢,多多帮忙哦,先谢了♣♣♣♣♣♣♣♣♣♣ϖ
- DBGridEh数据输出为电子表格文件问题.
- 如何将数据集内的所有内容保存到流中如TStream、TFileStream等
- 年去做erp,但对erp不了解呀!做过的朋友给说说经验吧!
- 在程序中如何让一个事件失效和有效。
- 请问如何才能在程序里进行拨号并断开连接
- 在windows2000服务程序中执行一个存储过程。急急急...
- 我现在在做一个系统监视器,不知道是怎么的每次要报一个错误:Assertion failed:_reply_message!=(protcolEngine::ReplyMessage*)NULL,fi
- 如何基于PANEL组件创建包括几个标签的自定义控件?
- 纳闷,一个DBGridEh的问题...
- 请问一个有关Data Module的问题,在线等待...
CDO_TLB, ADODB_TLB太大, 应该从import type lib可以直接得到(Microsoft xxx), 如果弄不到, 留个email.unit SaveMHT;interface
uses
CDO_TLB, ADODB_TLB, Classes, SysUtils, ActiveX;procedure SaveToMHT(const URL, DestFileName: string);// This should be used when you have already set the threading model to multithreaded
procedure SaveToMHT_InCOThread(const URL, DestFileName: string);implementationprocedure SaveToMHT(const URL, DestFileName: string);
var
Msg: IMessage;
Conf: IConfiguration;
Stream : _Stream;
begin
Msg := CoMessage.Create;
Conf := CoConfiguration.Create;
Msg.Configuration := Conf;
Msg.CreateMHTMLBody(URL, cdoSuppressNone, '', '');
Stream := Msg.GetStream;
Stream.SaveToFile(DestFileName, adSaveCreateOverWrite);
end;type
TCOMInitNullThread = class(TThread)
protected
FPage, FFile: string;
Ex: Exception;
procedure Execute; override;
end;procedure SaveToMHT_InCOThread(const URL, DestFileName: string);
begin
with TCOMInitNullThread.Create(True) do
try
FPage:= URL;
FFile:= DestFileName;
Resume;
WaitFor;
if Ex <> nil then
raise Ex;
finally
Free;
end;
end;{ TCOMInitNullThread }procedure TCOMInitNullThread.Execute;
begin
CoInitialize(nil);
try
SaveToMHT(FPage, FFile);
except
on E:Exception do
begin
Ex:= E.ClassType.Create as Exception;
Ex.Message:= E.Message;
end;
end;
CoUninitialize;
end;end.
可能是:
microsoft CDO for Windows2000
microsoft ADO Ext.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<HTML><HEAD><TITLE>恒悦鬼使神差</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<META content="MSHTML 6.00.2800.1458" name=GENERATOR></HEAD>
<BODY style="WORD-BREAK: break-all" bgColor=#808080>
<P><IMG
src="D:\新建文件夹\MyDocument\My Pictures\照片\MyPO.jpg">dsffffffffffffffffffffffffffffffffff</P>
<P>sdfffffffffffffffffffffffffffffffffffff<FONT
face=楷体_GB2312>dsfffffffffffffffffffffffffffffff<FONT size=7>d<FONT
color=#0000ff>sffffffffffffffffffff</FONT><STRONG><FONT
color=#0000ff>dfffffffffffffffffffffffffffffffffffffffffffffffffff</FONT>fffffffffdsfasdf<EM>sadfsadf<U>sdfsdfsdfdffff</U></EM></STRONG></FONT></FONT></P></BODY></HTML>
用上面的方法保存为MHT格式的文件的内容如下:
thread-index: AcSSVNSqbhF8FgGgRIigHZb79jZQ1g==
MIME-Version: 1.0
Content-Type: multipart/alternative;
boundary="----=_NextPart_000_0010_01C49297.E2D0ACA0"
Content-Location: file:///E:/MyProgram/Mail/Mail/Temp/Temp/Temp.htm
Content-Class: urn:content-classes:message
Importance: normal
Priority: normal
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1441This is a multi-part message in MIME format.------=_NextPart_000_0010_01C49297.E2D0ACA0
Content-Type: text/plain;
charset="gb2312"
Content-Transfer-Encoding: quoted-printable <D:\=D0=C2=BD=A8=CE=C4=BC=FE=BC=D0\MyDocument\My =
Pictures\=D5=D5=C6=AC\MyPO.jpg>
dsffffffffffffffffffffffffffffffffffsdfffffffffffffffffffffffffffffffffffffdsfffffffffffffffffffffffffffffff
dsffffffffffffffffffffdfffffffffffffffffffffffffffffffffffffffffffffffff
fffffffffffdsfasdfsadfsadfsdfsdfsdfdffff
------=_NextPart_000_0010_01C49297.E2D0ACA0
Content-Type: text/html
Content-Transfer-Encoding: 8bit<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<HTML><HEAD><TITLE>恒悦鬼使神差</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<META content="MSHTML 6.00.2800.1458" name=GENERATOR></HEAD>
<BODY style="WORD-BREAK: break-all" bgColor=#808080>
<P><IMG
src="D:\新建文件夹\MyDocument\My Pictures\照片\MyPO.jpg">dsffffffffffffffffffffffffffffffffff</P>
<P>sdfffffffffffffffffffffffffffffffffffff<FONT
face=楷体_GB2312>dsfffffffffffffffffffffffffffffff<FONT size=7>d<FONT
color=#0000ff>sffffffffffffffffffff</FONT><STRONG><FONT
color=#0000ff>dfffffffffffffffffffffffffffffffffffffffffffffffffff</FONT>fffffffffdsfasdf<EM>sadfsadf<U>sdfsdfsdfdffff</U></EM></STRONG></FONT></FONT></P></BODY></HTML>------=_NextPart_000_0010_01C49297.E2D0ACA0--
其中的图片并没有直接压入消息结构的附件中,而非本地文件却会压入,这是为什么呢?该如何处理呢?
procedure TForm1.SaveToMHT(const URL, DestFileName: string);
var
Msg: IMessage;
Conf: IConfiguration;
Stream : _Stream;
begin
Msg := CoMessage.Create;
Conf := CoConfiguration.Create;
Msg.Configuration := Conf;
Msg.CreateMHTMLBody(URL, cdoSuppressNone, '', '');
Stream := Msg.GetStream;
Stream.SaveToFile(DestFileName, adSaveCreateOverWrite);
end;
这个方法保存的,没有用线程