rain 发表于 2011-9-8 17:38:05

[已解决]请问:如何能获取当前浏览器打开的所有窗口的网址呢?

本帖最后由 rain 于 2011-9-8 21:06 编辑

使用_IEAttach()只能匹配到一个浏览窗口,我想获取到当前所有窗口的网址,搜了半天论坛没有发现这样的案例,特此请教!谢谢!悬赏

骗子 发表于 2011-9-8 17:44:58

仔细看看_IEAttach()的帮助,还有里面的例子

骗子 发表于 2011-9-8 17:45:44

; *******************************************************
; 实例 5 - 创建一个对象引用到所有当前浏览器实例数组
;               第一个数组元素将包含发现的事例
; *******************************************************
;
#include <IE.au3>

Dim $aIE
$aIE = 0

$i = 1
While 1
    $oIE = _IEAttach ("", "instance", $i)
    If @error = $_IEStatus_NoMatch Then ExitLoop
    ReDim $aIE[$i + 1]
    $aIE[$i] = $oIE
    $aIE = $i
    $i += 1
WEnd

MsgBox(0, "浏览器中发现", "浏览器的实例数在数组: " & $aIE)

rain 发表于 2011-9-8 18:03:10

; *******************************************************
; 实例 5 - 创建一个对象引用到所有当前浏览 ...
骗子 发表于 2011-9-8 17:45 http://www.autoitx.com/images/common/back.gif


    谢谢,说实话我没有看懂。试过没有成功

huaisha1224 发表于 2011-9-8 18:35:16

观望中ing
看看高手的解决方案

卫和谐 发表于 2011-9-8 19:11:34

回复 3# 骗子


    运行这个代码得到是打开的浏览器窗口数!

kevinch 发表于 2011-9-8 20:40:09

$oShell=ObjCreate("shell.application")
For $oWin In $oShell.windows
        If ObjName($oWin.document)=="DispHTMLDocument" Then ConsoleWrite($oWin.locationurl&@CRLF)
Next

rain 发表于 2011-9-8 21:05:20


kevinch 发表于 2011-9-8 20:40 http://www.autoitx.com/images/common/back.gif


    绝对的高手!第二次帮我解决了问题。谢谢,30分奉上!

骗子 发表于 2011-9-8 21:52:43

本帖最后由 骗子 于 2011-9-8 21:59 编辑

回复 6# 卫和谐
只是把帮助帖上来而已
稍微改改不就能得到地址了?


#include <IE.au3>
#include <array.au3>
Dim $aIE
$aIE = 0

$i = 1
While 1
    $oIE = _IEAttach ("", "instance", $i)
          If @error = $_IEStatus_NoMatch Then ExitLoop
        ConsoleWrite ($i&"url="&_IEPropertyGet ($oIE, "locationurl")&@CRLF)
    ReDim $aIE[$i + 1]
    $aIE[$i] = _IEPropertyGet ($oIE, "locationurl")
    $aIE = $i
    $i += 1
WEnd
_ArrayDisplay ($aIE)

rain 发表于 2011-9-8 22:24:03

回复卫和谐
只是把帮助帖上来而已
稍微改改不就能得到地址了?


#include
#include
Dim $aIE[ ...
骗子 发表于 2011-9-8 21:52 http://www.autoitx.com/images/common/back.gif

厉害!谢谢,同样给分

zldfsz 发表于 2011-11-22 20:22:21

学习学习,{:face (356):}

82809085 发表于 2011-11-22 23:47:13

论坛的分为真的很好,有问题提出来有人热心的回答

ahphsautoit 发表于 2012-4-8 11:44:32

唉,找了半天,研究了半天还是没有弄出来。例子能读出所有的网址,哪一个是当前正打开的网址的啊?想做个一键收藏网址的,就卡这了。

afan 发表于 2012-4-8 12:11:21

唉,找了半天,研究了半天还是没有弄出来。例子能读出所有的网址,哪一个是当前正打开的网址的啊?想做个一 ...
ahphsautoit 发表于 2012-4-8 11:44 http://www.autoitx.com/images/common/back.gif#include <IE.au3>

$a = _GetActiveURL()
MsgBox(0, $a, $a)

Func _GetActiveURL()
        ;afan提示: 获取当前Ie窗口URL及标题
        Local $hWin = WinActivate('')
        Local $oIE = _IEAttach($hWin, 'Embedded', 1)
        If @error = $_IEStatus_NoMatch Or Not IsObj($oIE) Then Return SetError(1, '', '')
        $url = _IEPropertyGet($oIE, 'locationurl')
        If $url = '' Then Return SetError(2, '', '')
        Local $a = [$url, _IEPropertyGet($oIE, 'title')]
        Return $a
EndFunc   ;==>_GetActiveURL

ahphsautoit 发表于 2012-4-8 12:59:49

回复 14# afan
谢谢!
我刚刚已经用了个笨方法解决了,在获取多标签的每一个网址时,检测对应对一个网址的标题名,用得到的标题名来检测IE窗口是否存在,如果存在则刚刚得到的URL就是自己想要获取的。呵呵,非常感谢了!
页: [1] 2
查看完整版本: [已解决]请问:如何能获取当前浏览器打开的所有窗口的网址呢?