找回密码
 加入
搜索
查看: 7169|回复: 7

[IE类操作] 如何获取QQ嵌入型网页Internet Explorer_Server作为DOM对象

  [复制链接]
发表于 2011-12-25 13:40:55 | 显示全部楼层 |阅读模式
本帖最后由 user11 于 2011-12-25 18:13 编辑

类似于,这个帖子  http://www.autoitx.com/thread-28978-1-1.html
如何发悬赏贴?没找到??上贴双倍40金币,没有太多,略表寸心

这个帖子是获取资讯内容,,这个我已将学会了,难度再增加一点,窗口嵌套了两次,第二次窗口无标题。。

如果我想获得 与某个人,聊天窗口      消息记录   中的 内容 该怎么办,?

窗口信息工具可以获得 $hWnd,直接用这个 $hWnd 是获取不到 ie内容, 测试发现,这个和 QQ 钱包 是一样的,以钱包 测试 比较方便。。。


类:        Internet Explorer_Server
接口:        1
类别名:        Internet Explorer_Server1
名称:        
高级模式(类):[CLASS:Internet Explorer_Server; INSTANCE:1]

中的内容该如何写。。。这个是嵌套多次,和 QQ钱包 的窗口类似,难度增加了。
#include <IE.au3>
Opt("WinTitleMatchMode", 2)
Opt("WinDetectHiddenText",1)
Opt("WinSearchChildren",1)
Dim $i,$window,$url
$hWnd = WinWait("我"); 消息记录窗口,和我的钱包是一样的,我的钱包标题不变容易测试
$aWindows = _WinAPI_EnumWindows(False, $hWnd);搜索有人说可以枚举,不会用,没成功。。。
$window = $aWindows [1][0]
While 1
        $i = $i + 1
        $oIE = _IEAttach($window, "embedded", $i)
        If @error = $_IEStatus_NoMatch Then
                MsgBox(0, "完成", "已经举完了")
                ExitLoop
        EndIf
        If IsObj($oIE) Then
                $url = _IEPropertyGet($oIE, "locationurl")
                                Run(@WindowsDir & "\Notepad.exe")
                                                Send($url)
                      MsgBox(0, "发现", "找到网址为:" & $url)
                                
        EndIf
WEnd

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2011-12-25 23:04:23 | 显示全部楼层
和这个帖子怎么这么像?http://autoitx.com/thread-28978-1-1.html
发表于 2011-12-26 15:41:55 | 显示全部楼层
本帖最后由 kyniel 于 2011-12-26 15:46 编辑
#include <IE.au3>

$window = WinWait("[ClASS:TXGuiFoundation;Title:(聊天对话框标题)]","")


$oIE = _IEAttach($window, "embedded", 1);如果是获取群记录的话改成$oIE = _IEAttach($window, "embedded", 2)

If IsObj($oIE) Then

                $oElements = _IETagNameGetCollection ($oIE,"div")

                For $oElement In $oElements
                                        
                                If $oElement.classname="msgContentDiv" And $oElement.classname<>"0" Then        

                                MsgBox(0, "元素信息", "标记名: " & $oElement.classname & @CR & "内部文本: " & StringRegExpReplace($oElement.innerText,"0","纯图片"))
                                        
                            EndIf
                                
                Next


                EndIf
Exit
这是获取聊天记录的代码,记得要把消息记录展开。
 楼主| 发表于 2011-12-27 20:56:13 | 显示全部楼层
回复 3# kyniel

感谢你的回复,这个代码和我贴的 除了获取窗口句柄的方法不同,没区别吧?

$oIE = _IEAttach($window, "embedded", $i)  这句是匹配不到的,还是我这里有问题?

请问你测试的是 qq2011 正式版了么?我测试是不可以的,THX
发表于 2011-12-28 09:00:07 | 显示全部楼层
本帖最后由 kyniel 于 2011-12-28 09:01 编辑

回复 4# user11


是qq2011,你要展开消息记录才能获取

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2011-12-28 20:31:25 | 显示全部楼层
本帖最后由 user11 于 2011-12-29 08:32 编辑

回复 5# kyniel

肯定是展开了。。难度是人品问题? IsObj($oIE) 这行 根本没有成功返回,哎。我再试试。!

请问你是什么版本的,我用的是 win7  ie9   AU3.    3.3,6.1

到虚拟机里测试了一下,,XP是没有问题的,但是 win7 是不可以的,,求win7的方法,win7 看你是因为多了一层TXGFLayerMask类
发表于 2011-12-29 08:56:26 | 显示全部楼层
回复 6# user11


    我的是xp的,要么你直接把TXGFLayerMask当句柄,没有标题,就根据它的坐标、长宽获取句柄
发表于 2011-12-30 19:43:01 | 显示全部楼层
貌似以前看过一个搜集QQ好友的程序不会也是用这个编写的吧?
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-12-24 03:54 , Processed in 0.082496 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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