xyold1 发表于 2011-3-7 23:21:40

IE函数在使用IE内核的其它浏览器出错的问题【已解决】

本帖最后由 xyold1 于 2011-3-9 15:23 编辑

像世界之窗——IE内核的浏览器,在打开它的时候,使用IEUDF函数会出现错误,有什么解决方法吗?

1,修改默认网页浏览器(11楼boyhong 的方法)
2,注册并使用一个自定义COM错误处理程序.(5楼骗子的方法)比较好

xyold1 发表于 2011-3-7 23:42:13

#include <IE.au3>
#include <Array.au3>

$a = 'http://tv.tudou.com/albumtop/top/listRank.html?cid=30'
$oIE = _IECreate($a, 1, 0, 1, -1)
$itxt = _IEBodyReadHTML($oIE)

$table = _IETableGetCollection($oIE, 0)
$oInput = _IETableWriteToArray($table) ;读取指定表格内的数据,写入到数组
_ArrayDisplay($oInput, "表单内容", 0, 1) ;显示数组

_IEQuit($oIE)

While 1
        Sleep(100)
WEnd


上面是pcbar版主的一个例子,在开启世界之窗时,运行到_IEQuit($oIE)会使程序崩溃

boyhong 发表于 2011-3-8 15:01:15

我暂时的方法:改一下默认的网页浏览器。

xyold1 发表于 2011-3-9 13:22:20

回复 3# boyhong

谢谢,请教如何用AU3修改默认的网页浏览器?

骗子 发表于 2011-3-9 13:59:43

加一行
_IEErrorHandlerRegister()
错误输出模式?具体什么意思不懂,好像有了这个即使出错也不退出脚本,继续执行下面的内容。
还有我很奇怪楼主的脚本为什么执行完了以后还不退出要不停的循环呢?

ceoguang 发表于 2011-3-9 14:50:14

在所有IE内核的非MS浏览器中,IWebBrowser接口都是通过另一单独的窗口调用的(可以理解为拼凑而成)
如此就可以理解为什么使用quit等类似的指令会出错了,因为那样的话它就只剩下地址栏上面的部份了,^_^.
当然,还有很多另类的地方,深入研究后你必会大吃一斤,lol.......

boyhong 发表于 2011-3-9 14:53:44

在所有IE内核的非MS浏览器中,IWebBrowser接口都是通过另一单独的窗口调用的(可以理解为拼凑而成)
如此就可 ...
ceoguang 发表于 2011-3-9 14:50 http://www.autoitx.com/images/common/back.gif

要是超版能再简单介绍一下就是我等菜鸟之福了。。。

水木子 发表于 2011-3-9 14:54:04

回复 6# ceoguang
相当给力的讲解,学习啦!

更给力的是“大吃一斤”哈哈!开个玩笑,向大师致敬。

xyold1 发表于 2011-3-9 14:56:15

回复 5# 骗子

只是想演示一下这个错误,没别的意思(*^__^*) 嘻嘻……

xyold1 发表于 2011-3-9 14:58:37

回复 6# ceoguang

版主讲得很透彻{:face (411):}

boyhong 发表于 2011-3-9 14:58:48

回复boyhong

谢谢,请教如何用AU3修改默认的网页浏览器?
xyold1 发表于 2011-3-9 13:22 http://www.autoitx.com/images/common/back.gif


经过目前测试最有效的方法是,直接决定_iecreate::

If @OSArch = "X86" Then
        Global $HKCR = "HKCR"
Else
        Global $HKCR = "HKCR64"
EndIf
If RegRead($HKCR&"\CLSID\{0002DF01-0000-0000-C000-000000000046}\LocalServer32", "")<>'"'&@ProgramFilesDir&'\Internet Explorer\iexplore.exe"' then.........

xyold1 发表于 2011-3-9 15:01:18

本帖最后由 xyold1 于 2011-3-9 15:07 编辑

回复 11# boyhong

感谢
将这段代码加进_IECreate和_IEAttach 不知效果如何
{:face (293):}

ceoguang 发表于 2011-3-9 15:03:15

要是超版能再简单介绍一下就是我等菜鸟之福了。。。
boyhong 发表于 2011-3-9 14:53 http://www.autoitx.com/images/common/back.gif
举个简单的例子.
在IE中,你可以直接使用
$oIE.hwnd来获取主窗口的句柄,但是,在很多其它IE内核的浏览器中,你用$oIE.hwnd来获取到的却不是你要的主窗口.明白?
甚至,有些还直接drop掉MSAA
页: [1]
查看完整版本: IE函数在使用IE内核的其它浏览器出错的问题【已解决】