高手请进来拍我二砖!!一个关于webbrowser的问题!!讨论者都有分!!!

lyboy99 2002-04-12 02:06:41
想写个多页浏览器,可是遇到一个问题,常访问一些网站时候会出现
Could not obtain OLE control window handle 错误,而且访问www.sina.com.cn时候最容易出现这个问题

用webbrowser控件访问www.sina.com.cn的时候先访问该网页的主页面然后在响应NewWindow2(Sender: TObject; var ppDisp: IDispatch; var Cancel: WordBool);事件访问一个广告,过一小段时间以后又响应NewWindow2(Sender: TObject; var ppDisp: IDispatch; var Cancel: WordBool);事件,访问ttp://uil.sina.com.cn/c/timelog/log_start.cgi?channel=news页面,问题就出现在这里该页面是一个具有自动关闭功能的弹出页面这时我的WEBBROWSER控件就消失了,接着出现Could not obtain OLE control window handle 错误!

如何能防止这样的自动关闭功能的弹出页面联接使程序出错呢!请告示解答!


简单的源代码:
--------------------------
unit Unit1;



interface



uses


Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,


StdCtrls, OleCtrls, SHDocVw;



type


TForm1 = class(TForm)


WebBrowser1: TWebBrowser;


Edit1: TEdit;


procedure Edit1KeyDown(Sender: TObject; var Key: Word;


Shift: TShiftState);


procedure WebBrowser1NewWindow2(Sender: TObject; var ppDisp: IDispatch;


var Cancel: WordBool);


private


{ Private declarations }


public


{ Public declarations }


end;



var


Form1: TForm1;



implementation



{$R *.DFM}



procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;


Shift: TShiftState);


begin


if key=13 then


WebBrowser1.Navigate(Edit1.Text);


end;



procedure TForm1.WebBrowser1NewWindow2(Sender: TObject;


var ppDisp: IDispatch; var Cancel: WordBool);


begin


ppDisp:= WebBrowser1.Application;


end;



end.


...全文
166 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
Borlandor 2002-04-12
  • 打赏
  • 举报
回复
使用另外一个WebBrowse2:
procedure TForm1.WebBrowser1NewWindow2(Sender: TObject;
var ppDisp: IDispatch; var Cancel: WordBool);
begin
ppDisp:= WebBrowser2.Application;
Cancel := FALSE;
end;

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧