user11 发表于 2011-12-25 13:40:55

如何获取QQ嵌入型网页Internet Explorer_Server作为DOM对象

本帖最后由 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
名称:      
高级模式(类):

中的内容该如何写。。。这个是嵌套多次,和 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
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

blue_dvd 发表于 2011-12-25 23:04:23

和这个帖子怎么这么像?http://autoitx.com/thread-28978-1-1.html

kyniel 发表于 2011-12-26 15:41:55

本帖最后由 kyniel 于 2011-12-26 15:46 编辑

#include <IE.au3>

$window = WinWait("","")


$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


这是获取聊天记录的代码,记得要把消息记录展开。

user11 发表于 2011-12-27 20:56:13

回复 3# kyniel

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

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

请问你测试的是 qq2011 正式版了么?我测试是不可以的,THX

kyniel 发表于 2011-12-28 09:00:07

本帖最后由 kyniel 于 2011-12-28 09:01 编辑

回复 4# user11


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

user11 发表于 2011-12-28 20:31:25

本帖最后由 user11 于 2011-12-29 08:32 编辑

回复 5# kyniel

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

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

到虚拟机里测试了一下,,XP是没有问题的,但是 win7 是不可以的,,求win7的方法,win7 看你是因为多了一层TXGFLayerMask类

kyniel 发表于 2011-12-29 08:56:26

回复 6# user11


    我的是xp的,要么你直接把TXGFLayerMask当句柄,没有标题,就根据它的坐标、长宽获取句柄

哈密瓜 发表于 2011-12-30 19:43:01

貌似以前看过一个搜集QQ好友的程序不会也是用这个编写的吧?
页: [1]
查看完整版本: 如何获取QQ嵌入型网页Internet Explorer_Server作为DOM对象