shqf 发表于 2012-4-11 15:15:34

[已结]请问Internet Explorer_TridentDlgFrame类的窗口如何获取其句柄?

本帖最后由 shqf 于 2012-4-16 14:11 编辑

想获取一个类别是Internet Explorer_Server的网页源代码,关键是其处在一个标题为" -- 网页对话框"的弹出窗口中,这个父窗口类是Internet Explorer_TridentDlgFrame。用_IEAttach想直接获取子窗口总是失败。请问在这种状况下如何获取这二种窗口的句柄或对象?
补充:好像程序运行到弹出这个窗口后,停止运行,待关闭这个程序再运行下去的。

dbdbdd 发表于 2012-4-14 02:42:42

遇到同样的问题。

dbdbdd 发表于 2012-4-14 02:53:19

我的网页代是这样的。

我的父页面有个按钮是JS的。
<input id="btnRel_org.sales_m_DW_CDptCde" type="button" value="..." style="height:20px" class="button" onClick="dwManager.activeDWName = 'org.sales_m_DW';selectDept_C()"/>

我用调用JS打开了子页面
$oIE1.document.parentWindow.execscript("dwManager.activeDWName = 'org.sales_m_DW';selectDept_C()")

然后用了这下代码获取子页面引用

$window = WinWait("机构列表 -- 网页对话框")
$oIE2 = _IEAttach($window, "embedded")
$oElements = _IETagNameAllGetCollection ($oIE2)
For $oElement In $oElements
    MsgBox(0, "元素信息", "标记名: " & $oElement.tagname & @CR & "内部文本: " & $oElement.innerText)
Next

没有反应。

如果父页面的按钮人工操作。子页面的引用就能用了。这是什么问题,请高手指点指点。

shqf 发表于 2012-4-16 14:11:03

确定了问题的实质。并不是这样的窗口不能获取,而确是程序停在了那里。程序在自动点击父窗口按钮而弹出窗口后不能再运行下去,直接停在那里了。导致后面的winwait()语句执行不到,使人以为是无法获取弹出的窗口句柄故程序在等待。假如是手动点击的,winwait()是能够获取其弹出窗口的句柄。故本贴问题已未能反映问题的实质了,就这样结了本贴吧。我另开一主题来提问。
页: [1]
查看完整版本: [已结]请问Internet Explorer_TridentDlgFrame类的窗口如何获取其句柄?