找回密码
 加入
搜索
查看: 2665|回复: 3

[IE类操作] 如何获取窗体中Object的句柄?[已解决]

[复制链接]
发表于 2012-1-4 22:43:37 | 显示全部楼层 |阅读模式
本帖最后由 longwin9 于 2012-1-5 09:19 编辑

#include<ie.au3>
$Form1 = GUICreate("form1",1000, 600)
$oIE = ObjCreate("Shell.Explorer.2")
GUICtrlCreateObj($oIE,0, 0, 1000, 600)
$oIE.navigate("http://www.163.com/")
GUISetState(@SW_SHOW)
MsgBox(0,'a',GUICtrlGetHandle($oIE));此获取不到
MsgBox(0,'a',$oIE.hwnd);此错误
发表于 2012-1-5 00:54:25 | 显示全部楼层
回复 1# longwin9

貌似此时的IE句柄已经等于内嵌窗口句柄了吧,也不会获取到IEFrame,你用_WinAPI_EnumWindows()测试下就知道了
$Guid =_WinAPI_EnumWindows()
For $i = 1 To $Guid[0][0]                                                                                                                
                If $guid[$i][1] = "IEFrame" Then
                                _WinAPI_ShowWindow($Guid[$i][0],@SW_MAXIMIZE)
                                $hwnd = $Guid[$i][0]
                                MsgBox(0,"IE句柄",$hwnd)
                EndIf        
Next
 楼主| 发表于 2012-1-5 09:18:13 | 显示全部楼层
OK!!感谢2楼提供思路
#include<ie.au3>
#Include <WinAPIEx.au3>
#Include <Array.au3>

$Form1 = GUICreate("form1",1000, 600)
$oIE = ObjCreate("Shell.Explorer.2")
 GUICtrlCreateObj($oIE,0, 0, 1000, 600)
 $oIE.navigate("http://www.163.com/")
 GUISetState(@SW_SHOW)
 
WinActivate('form1');没有这一行有时获取不到

 $Data = _WinAPI_EnumChildWindows ($Form1 )
_ArrayDisplay($Data, '_WinAPI_EnumChildWindows')

MsgBox(0,$Data[3][1],$Data[3][0])
发表于 2013-1-14 17:08:24 | 显示全部楼层
$oIE1 = _IEAttach($Data[3][0], "HWND")

$html = _IEBodyReadHTML($oIE1)
为什么这样得不到源码呢?
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-18 06:00 , Processed in 0.076419 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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