找回密码
 加入
搜索
查看: 12281|回复: 19

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

 火.. [复制链接]
发表于 2011-9-8 17:38:05 | 显示全部楼层 |阅读模式
本帖最后由 rain 于 2011-9-8 21:06 编辑

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

评分

参与人数 1金钱 +20 收起 理由
afan + 20 感谢主动将修改帖子分类为[已解决],请继续 ...

查看全部评分

发表于 2011-9-8 17:44:58 | 显示全部楼层
仔细看看_IEAttach()的帮助,还有里面的例子
发表于 2011-9-8 17:45:44 | 显示全部楼层
; *******************************************************
; 实例 5 - 创建一个对象引用到所有当前浏览器实例数组
;               第一个数组元素将包含发现的事例
; *******************************************************
;
#include <IE.au3>

Dim $aIE[1]
$aIE[0] = 0

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

MsgBox(0, "浏览器中发现", "浏览器的实例数在数组: " & $aIE[0])
 楼主| 发表于 2011-9-8 18:03:10 | 显示全部楼层
; *******************************************************
; 实例 5 - 创建一个对象引用到所有当前浏览 ...
骗子 发表于 2011-9-8 17:45



    谢谢,说实话我没有看懂。试过没有成功
发表于 2011-9-8 18:35:16 | 显示全部楼层
观望中ing
看看高手的解决方案
发表于 2011-9-8 19:11:34 | 显示全部楼层
回复 3# 骗子


    运行这个代码得到是打开的浏览器窗口数!
发表于 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

评分

参与人数 1金钱 +30 收起 理由
rain + 30 很棒的见解

查看全部评分

 楼主| 发表于 2011-9-8 21:05:20 | 显示全部楼层
kevinch 发表于 2011-9-8 20:40



    绝对的高手!第二次帮我解决了问题。谢谢,30分奉上!
发表于 2011-9-8 21:52:43 | 显示全部楼层
本帖最后由 骗子 于 2011-9-8 21:59 编辑

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


#include <IE.au3>
#include <array.au3>
Dim $aIE[1]
$aIE[0] = 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[0] = $i
    $i += 1
WEnd
_ArrayDisplay ($aIE)

评分

参与人数 1金钱 +30 收起 理由
rain + 30 谢谢

查看全部评分

 楼主| 发表于 2011-9-8 22:24:03 | 显示全部楼层
回复  卫和谐
只是把帮助帖上来而已
稍微改改不就能得到地址了?


#include
#include
Dim $aIE[ ...
骗子 发表于 2011-9-8 21:52


厉害!谢谢,同样给分
发表于 2011-11-22 20:22:21 | 显示全部楼层
学习学习,
发表于 2011-11-22 23:47:13 | 显示全部楼层
论坛的分为真的很好,有问题提出来有人热心的回答
发表于 2012-4-8 11:44:32 | 显示全部楼层
唉,找了半天,研究了半天还是没有弄出来。例子能读出所有的网址,哪一个是当前正打开的网址的啊?想做个一键收藏网址的,就卡这了。
发表于 2012-4-8 12:11:21 | 显示全部楼层
唉,找了半天,研究了半天还是没有弄出来。例子能读出所有的网址,哪一个是当前正打开的网址的啊?想做个一 ...
ahphsautoit 发表于 2012-4-8 11:44
#include <IE.au3>

$a = _GetActiveURL()
MsgBox(0, $a[0], $a[1])

Func _GetActiveURL()
        ;afan提示: 获取当前Ie窗口URL及标题
        Local $hWin = WinActivate('[CLASS:IEFrame]')
        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[2] = [$url, _IEPropertyGet($oIE, 'title')]
        Return $a
EndFunc   ;==>_GetActiveURL
发表于 2012-4-8 12:59:49 | 显示全部楼层
回复 14# afan
谢谢!
我刚刚已经用了个笨方法解决了,在获取多标签的每一个网址时,检测对应对一个网址的标题名,用得到的标题名来检测IE窗口是否存在,如果存在则刚刚得到的URL就是自己想要获取的。呵呵,非常感谢了!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-24 08:53 , Processed in 0.074366 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表