WebBrowser的Document接口问题

likeyrain 2010-08-03 01:50:56
大家好:
请教一下,下面这两条语句
//Dispatch: IDispatch;
Dispatch := IHTMLDocument2(WebBrowser1.Document).Script
这句在EXE里运行正常,放到线程里就报“不支持此接口”的错误,
网上查了一下,需要加入CoInitialize,
但我加入CoInitialize(nil);程序会停在这不动,
加入CoInitialize(self);还是报同一错误,
不知道有什么解决的方法?
...全文
178 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
xtfnpgy 2012-07-04
  • 打赏
  • 举报
回复
有可能是调用javascript的问题,或者线程调用主界面控件的问题
likeyrain 2010-08-06
  • 打赏
  • 举报
回复
还有,加了CoInitialize(nil);还是会报“不支持此接口”的错误..........
likeyrain 2010-08-06
  • 打赏
  • 举报
回复
错误好象在mshtml.dll这个里面
无条件为你 2010-08-05
  • 打赏
  • 举报
回复
不要在线程里使用。
likeyrain 2010-08-05
  • 打赏
  • 举报
回复
用截包工具看,加入CoInitialize(nil);这个后,webbrowser打开网页只打开了一点点就停着不动(例如网页上有1000行,只打开了10行左右),然后程序就停着不动,去掉CoInitialize(nil);可以打开,但总提示“不支持此接口”的错误
likeyrain 2010-08-05
  • 打赏
  • 举报
回复
边发问,自己边做测试,三天啦,还没找到个眉目,郁闷啊,请高人指点!!!!
likeyrain 2010-08-05
  • 打赏
  • 举报
回复
原来是这里有问题
while not WebFun.isFinish do
begin
if Terminated then exit;
sleep(10);
continue;
end;

这里的本意是,设一个变量,等待网页打开后再做下面的代码,在webbrowser的WebBrowser1NavigateComplete2里设为true,
在不加CoInitialize(nil);的时候,这个等待正常,加了这个之后,就一直在这里循环,
有什么方法可以让webbrowser打开网页后再执行的啊?
likeyrain 2010-08-04
  • 打赏
  • 举报
回复
TO:kye_jufei
加入了,还是不行,一样的错误:“不支持此接口”.
iqyely 2010-08-04
  • 打赏
  • 举报
回复
来关注下。
likeyrain 2010-08-04
  • 打赏
  • 举报
回复
问题还没有解决,继续发问。。。
Mit1208 2010-08-04
  • 打赏
  • 举报
回复
学习了....!
dongmei757 2010-08-04
  • 打赏
  • 举报
回复
学习......
kye_jufei 2010-08-04
  • 打赏
  • 举报
回复
在程序塊加入以下語句,問題即可解決:

initialization
   OleInitialize(nil);
  finalization
   try
    OleUninitialize;
   except
   end;

  这几句话放在主窗口所有语句之后,“end.”之前。
kye_jufei 2010-08-04
  • 打赏
  • 举报
回复
OLE对象需要初始化和终止化:

大家在执行TWebBrowser的某个方法以进行期望的操作,如ExecWB等的时候可能都碰到过“试图激活未注册的丢失目标”或“OLE对象未注册”等错误,或者并没有出错但是得不到希望的结果,比如不能将选中的网页内容复制到剪贴板等。以前用它编程的时候,我发现ExecWB有时侯起作用但有时侯又不行,在Delphi生成的缺省工程主窗口上加入TWebBrowser,运行时并不会出现“OLE对象未注册”的错误。同样是一个偶然的机会,我才知道OLE对象需要初始化和终止化...
likeyrain 2010-08-03
  • 打赏
  • 举报
回复
自己顶一下

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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