z761003 发表于 2022-2-3 20:42:38

如何获取其它程序打开的IE浏览页的地址或标题【已解决】

本帖最后由 z761003 于 2022-2-3 23:08 编辑

不知道有没办法获取其它程序已经打开了的IE浏览器页面的URL地址,或者页面标题(非窗口标题),我在页面上用右键选属性是很容易看到这两项的,不知道WINDOWS有没这方面API获取得到.

zghwelcome 发表于 2022-2-3 21:20:36


#include <ie.au3>
Local $aWinlist = WinList('')
If $aWinlist Then
        For $i = 1 To $aWinlist
                Local $hWndIE = $aWinlist[$i]
                Local $oIE = _IEAttach($hWndIE, "hwnd")
                If IsObj($oIE) Then
                        ConsoleWrite('+ url: ' & _IEPropertyGet($oIE, 'locationurl') & @CRLF)
                        ConsoleWrite('+ title: ' & _IEPropertyGet($oIE, 'title') & @CRLF)
                        $oIE = 0
                EndIf
        Next
EndIf


z761003 发表于 2022-2-3 22:23:45

谢谢,这个好像自己开的IE窗口能获取成功,对方程序开的也是IE窗口,获取失败,右键看却都是一样的。。

z761003 发表于 2022-2-3 22:27:42

可能是它内嵌了后加了代码来屏蔽了

z761003 发表于 2022-2-3 22:56:21

解决了,内嵌的要用 _IEAttach($hWndIE, "Embedded")还是感谢楼上兄弟指点{:1_192:}

z761003 发表于 2022-2-4 16:23:40

本帖最后由 z761003 于 2022-2-4 18:43 编辑

再问下,像IE这种抛出错误要怎么处理下呀

_IEErrorHandlerRegister ()   ?

afan 发表于 2022-2-6 14:18:35

z761003 发表于 2022-2-4 16:23
再问下,像IE这种抛出错误要怎么处理下呀

_IEErrorHandlerRegister ()   ?

这个只需要在主脚本前面加一行 Local $oMyError = ObjEvent("AutoIt.Error", "ErrFunc")
然后自定义 ErrFunc 函数,在其中处理错误,比如赋值一个全局变量。
最后在容易出错的地方加入检测该变量的值做相应处理即可。
具体可查看帮助文档 COM 出错处理

z761003 发表于 2022-2-6 16:40:10

好的,学会了,我试试,谢谢
页: [1]
查看完整版本: 如何获取其它程序打开的IE浏览页的地址或标题【已解决】