请问哪有关于Browes Helper Object的资料,或者请问如何用Delphi定制一个插件,使网页顶端增加一个长条形的图片,还有在网页跳转的过程中先转到别的网页,等找到要找的网页之后又跳到要找的页面,以及如何更改IE的主页!
解决方案 »
- 高分求比较好的类设计(讨论帖)
- 关于DBGrideh的下载问题
- 30元钱买李维的《Delphi 5.x分布式多层应用系统篇〉》
- 从BDE通过ADO连接access200,对数据库(Access)的更新操作出现了"[Microsoft][ODBC Microsoft Access Driver]非法的精确读数值"的提示?
- Excel求救,帮忙看看;
- 如果得到mssql2000自动分配的id?(暂无分,以后一定加)
- intraweb5.1能否在delphi6中使用
- 继续教,用Delphi中的Tquery 控件访问 MS Sql Server 中的问题
- DBEDIT能不能不连数据源,象EDIT那样输入文本?谢谢
- 请问这样会不会释放内存并且不会造成内存泄漏??
- 一个关于数据添加的问题?
- 誰有Proxies的單元文件可以email一份給我啊
一个BHO的简单例子
http://www.01cn.net/cgi-bin/topic_print.cgi?id=1069
procedure DoNavigateComplete2(const pDisp: IDispatch; var URL: OleVariant);
const
BufSize = $10000;
var
Size: Int64;
re_Stream: IStream;
re_hHTMLText: HGLOBAL;
re_psi: IPersistStreamInit;
wr_Stream: IStream;
wr_hHTMLText: HGLOBAL;
wr_psi: IPersistStreamInit;
html:string;
str:string;
str_col:string;
i:integer;
begin
if not Assigned((pDisp as WebBrowser).Document) then Exit;
OleCheck((pDisp as WebBrowser).Document.QueryInterface(IPersistStreamInit, re_psi));
try
re_hHTMLText := GlobalAlloc(GPTR, BufSize);
if 0 = re_hHTMLText then RaiseLastWin32Error;
OleCheck(CreateStreamOnHGlobal(re_hHTMLText,True, re_Stream));
try
OleCheck(re_psi.Save(re_Stream, False));
Size := StrLen(PChar(re_hHTMLText));
SetLength(html, Size);
CopyMemory(PChar(Html), Pointer(re_hHTMLText),Size);
finally
re_Stream := nil;
end;
finally
re_psi := nil;
end;
i:=pos('<body',Html);
str:=copy(html,0,i);
Html:=copy(Html,i+1,length(Html)-i);
i:=pos('>',Html);
str:=str+copy(html,0,i);
Html:=copy(Html,i+1,length(Html)-i);
str:=str+'<a href="http:\\www.csdn.net\"><img src="BBSData/re10MYY/12652.gif" width="463" height="60" border="0"></a>'+Html; if not Assigned((pDisp as WebBrowser).Document) then Exit;
wr_hHTMLText := GlobalAlloc(GPTR, Length(Html) + 1);
if 0 = wr_hHTMLText then RaiseLastWin32Error;
CopyMemory(Pointer(wr_hHTMLText),PChar(Html), Length(Html));
OleCheck(CreateStreamOnHGlobal(wr_hHTMLText, True, wr_Stream));
try
OleCheck((pDisp as WebBrowser).Document.
QueryInterface(IPersistStreamInit, wr_psi));
try
OleCheck(wr_psi.InitNew);
OleCheck(wr_psi.Load(wr_Stream));
finally
wr_psi := nil;
end;
finally
wr_Stream := nil;
end;
end;
关于在网页跳转的过程中先转到别的网页,等找到要找的网页之后又跳到要找的页面,应该是在浏览器打开网页时把另一个显示自定义网页的窗口显示出来覆盖IE的那个浏览器窗口,在OnDocumentComplete事件中再把你自己的网页窗口销毁。但我不知道应该怎么样用自定义的网页窗口覆盖IE浏览窗口啊!还请各位大虾帮帮忙!