可以用webbrowser下载,但是不知道如何保存到文件。求教。
11 个解决方案
#1
我要保存的是图片用
rang.execCommand('Copy',False,0);
image1.Picture.Assign(ClipBoard);
也不能解决
rang.execCommand('Copy',False,0);
image1.Picture.Assign(ClipBoard);
也不能解决
#2
用emb的webbrowser,好像有savetofile
#3
我用的是DELPHI7。
#4
EmbWebBrowser
#5
EmbWebBrowser控件,delphi7可以装
#6
EmbWebBrowser虽然是不错,不过仅仅为保存网页要用它没必要了,几行代码就可以做到的事情
http://blog.csdn.net/sunstone/article/details/4788743
http://blog.csdn.net/sunstone/article/details/4788743
#7
EmbWebBrowser试过了,不行哦,只能保存HTML文件,不能保存图片文件
#8
我要的是单独的一个验证码的图片
#9
直接用idhttp下载下来,urldowntofile下载不来说明服务器做了限制
#10
//{ 真正获取WebBrowser源码,返回的是原始格式代码,区别于innerHTML }
function GetHtml(const Document2: IHTMLDocument2): string;
const
BufSize = $10000;
var
Size: Int64;
Stream: IStream;
hHTMLText: HGLOBAL;
psi: IPersistStreamInit;
begin
if not Assigned(Document2) then Exit;
OleCheck(Document2.QueryInterface
(IPersistStreamInit, psi));
try
//OleCheck(psi.GetSizeMax(Size));
hHTMLText := GlobalAlloc(GPTR, BufSize);
if 0 = hHTMLText then SysUtils.RaiseLastWin32Error;
OleCheck(CreateStreamOnHGlobal(hHTMLText,
True, Stream));
try
OleCheck(psi.Save(Stream, False));
Size := StrLen(PChar(hHTMLText));
SetLength(Result, Size);
CopyMemory(PChar(Result), Pointer(hHTMLText),
Size);
finally
Stream := nil;
end;
finally
psi := nil;
end;
end;
//调用按钮事件
procedure TForm1.ButtonViewSourcClick(Sender: TObject);
begin
Memo1.Text := GetHtml(WebBrowser1.Document as IHTMLDocument2);
end;
可以在OnDocumentComplete事件中判断WebBrowser1中的内容加载完毕,就可以用调用GetHtml函数进行显示,
Memo1.Text赋值后,保存为文件直接Memo1.Lines.SaveToFile()就可以了。
#11
我想获取的是验证码的图片。urldowntofile在7。0版的IE中可以下载,很郁闷。
#1
我要保存的是图片用
rang.execCommand('Copy',False,0);
image1.Picture.Assign(ClipBoard);
也不能解决
rang.execCommand('Copy',False,0);
image1.Picture.Assign(ClipBoard);
也不能解决
#2
用emb的webbrowser,好像有savetofile
#3
我用的是DELPHI7。
#4
EmbWebBrowser
#5
EmbWebBrowser控件,delphi7可以装
#6
EmbWebBrowser虽然是不错,不过仅仅为保存网页要用它没必要了,几行代码就可以做到的事情
http://blog.csdn.net/sunstone/article/details/4788743
http://blog.csdn.net/sunstone/article/details/4788743
#7
EmbWebBrowser试过了,不行哦,只能保存HTML文件,不能保存图片文件
#8
我要的是单独的一个验证码的图片
#9
直接用idhttp下载下来,urldowntofile下载不来说明服务器做了限制
#10
//{ 真正获取WebBrowser源码,返回的是原始格式代码,区别于innerHTML }
function GetHtml(const Document2: IHTMLDocument2): string;
const
BufSize = $10000;
var
Size: Int64;
Stream: IStream;
hHTMLText: HGLOBAL;
psi: IPersistStreamInit;
begin
if not Assigned(Document2) then Exit;
OleCheck(Document2.QueryInterface
(IPersistStreamInit, psi));
try
//OleCheck(psi.GetSizeMax(Size));
hHTMLText := GlobalAlloc(GPTR, BufSize);
if 0 = hHTMLText then SysUtils.RaiseLastWin32Error;
OleCheck(CreateStreamOnHGlobal(hHTMLText,
True, Stream));
try
OleCheck(psi.Save(Stream, False));
Size := StrLen(PChar(hHTMLText));
SetLength(Result, Size);
CopyMemory(PChar(Result), Pointer(hHTMLText),
Size);
finally
Stream := nil;
end;
finally
psi := nil;
end;
end;
//调用按钮事件
procedure TForm1.ButtonViewSourcClick(Sender: TObject);
begin
Memo1.Text := GetHtml(WebBrowser1.Document as IHTMLDocument2);
end;
可以在OnDocumentComplete事件中判断WebBrowser1中的内容加载完毕,就可以用调用GetHtml函数进行显示,
Memo1.Text赋值后,保存为文件直接Memo1.Lines.SaveToFile()就可以了。
#11
我想获取的是验证码的图片。urldowntofile在7。0版的IE中可以下载,很郁闷。