zhangkun90 发表于 2013-1-23 13:38:12

用Browser("hwnd:="& ieHwnd).Close关闭浏览器时 出错。

如 附件所示, 用 dom 打开IE浏览器,用object.HWND 来获取打开的IE浏览器的 hwnd 的值但是 在最后一行代码中执行错误 提示如附件所示 求解答

Set oie = CreateObject("InternetExplorer.Application")
oie.Visible= True
oie.Navigate"www.baidu.com"
ieHwnd=oie.HWND
Browser("hwnd:="& ieHwnd).Close

zhangkun90 发表于 2013-1-23 13:47:20

求解答~ 在线等奥

xjwldlover 发表于 2013-1-23 13:59:37

oie.HWND <> browser().getRoProperty("HWND")
通过Browser("hwnd:="& oie.HWND) 是找不到对象的

zhangkun90 发表于 2013-1-23 14:49:04

回复 3# xjwldlover


    可是我看书上是这么写的奥 , 我都是照敲下来的也不行55555

xjwldlover 发表于 2013-1-23 15:01:58

回复 4# zhangkun90

经过无数前辈的实践证明,这地方有些问题,原因还不知道

zhangkun90 发表于 2013-1-23 15:11:51

回复 5# xjwldlover


    啊 这样啊我知道咧书上写错了呗    是吧      用getRoProperty(“hwnd”) 这个取得的 值 是可以的    那妥妥的谢谢咯

黑羽祭 发表于 2013-1-24 09:13:30

回复 1# zhangkun90


    这里的确是书上写错了:使用Spy发现句柄与ieHwnd并不一样,所以最后一句执行的时候,的确找不到对象的。
还有271页上,oWebEdit("name") = "TestID.*"
应该写成 oWebEdit("name").value = "TestID.*"还有几个小地方也有点小问题。
LZ自行研究啦~

zhangkun90 发表于 2013-1-24 09:32:15

回复 7# 黑羽祭


    谢谢啦 ,

泰然 发表于 2013-1-24 09:54:24

作者没有写错,可能是未特意说明测试环境,他用的是IE6。

Set oie = CreateObject("InternetExplorer.Application")
oie.Visible= True
oie.Navigate"www.baidu.com"
'Browser("hwnd:="&oie.hwnd).close
'wait 10
print Browser(":=").GetROProperty("hwnd")&"/"&oie.hwnd
print "==================="
Set oObject = Description.Create()
Set oObjList = Desktop.ChildObjects(oObject)
For i = 0 to oObjList.count()-1
        print oObjList(i).getRoProperty("hwnd")&"/"&oObjList(i).getRoProperty("nativeclass")&"/"&oObjList(i).getRoProperty("micclass")
        print "==================="
Next



这段代码在我手头上有的2个浏览器版本IE6和IE8上运行的结果是不同的。

IE6上运行的结果:
459122/459122
===================
196664/Shell_TrayWnd/Window
===================
459278/WorkerW/WinObject
===================
524654/ReBarWindow32/WinObject
===================
1705224/ToolbarWindow32/WinToolbar
===================
655702/ComboBoxEx32/WinObject
===================
786920/ToolbarWindow32/WinToolbar
===================
459124/ComboBox/WinComboBox
===================
721520/Edit/WinEdit
===================
393736/ToolbarWindow32/WinToolbar
===================
459258/WorkerW/WinObject
===================
459284/ToolbarWindow32/WinToolbar
===================
1180892/msctls_statusbar32/WinStatusBar
===================
1836328/msctls_progress32/WinObject
===================
1901882/Shell DocObject View/WinObject
===================
459122/IEFrame/Browser
===================
328826/Mercury::Qtprn::PrintWindow/Window
===================
328588/Afx:00400000:8:00010003:00000000:002A03A3/Window
===================
65652/Progman/Window
===================


IE8上运行的结果:
67734/198488
===================
196672/Shell_TrayWnd/Window
===================
263242/TXGuiFoundation/Window
===================
133184/BrowserFrameGripperClass/WinObject
===================
198656/WorkerW/WinObject
===================
133122/ReBarWindow32/WinObject
===================
133230/TravelBand/WinObject
===================
133226/ToolbarWindow32/WinToolbar
===================
133228/Address Band Root/WinObject
===================
133220/AddressDisplay Control/WinObject
===================
133218/Edit/WinEdit
===================
133222/ToolbarWindow32/WinToolbar
===================
133224/ToolbarWindow32/WinToolbar
===================
133210/UniversalSearchBand/WinObject
===================
133212/Search Control/WinObject
===================
133208/Edit/WinEdit
===================
133204/ToolbarWindow32/WinToolbar
===================
133200/ToolbarWindow32/WinToolbar
===================
67696/CommandBarClass/WinObject
===================
67698/ReBarWindow32/WinObject
===================
67718/CommandToolbarBand/WinObject
===================
67720/ToolbarWindow32/WinToolbar
===================
67714/TabBandClass/WinObject
===================
67716/DirectUIHWND/WinObject
===================
67710/FavBandClass/WinObject
===================
67712/ToolbarWindow32/WinToolbar
===================
67700/LinksBandClass/WinObject
===================
67708/ToolbarWindow32/WinToolbar
===================
67704/ToolbarWindow32/WinToolbar
===================
67730/Frame Tab/WinObject
===================
67740/InternetToolbarHost/WinObject
===================
67742/WorkerW/WinObject
===================
67744/ReBarWindow32/WinObject
===================
67748/ToolbarWindow32/WinToolbar
===================
67734/TabWindowClass/Browser
===================
67752/msctls_statusbar32/WinStatusBar
===================
67776/ToolbarWindow32/WinToolbar
===================
67774/ToolbarWindow32/WinToolbar
===================
67772/Shell DocObject View/WinObject
===================
67786/Internet Explorer_Server/Page
===================
198488/IEFrame/Window
===================
198878/Mercury::Qtprn::PrintWindow/Window
===================
459956/Afx:00400000:8:00010003:00000000:000205BD/Window
===================
853206/rctrl_renwnd32/Window
===================
262948/Chrome_WidgetWin_1/Window
===================
197240/#32770/Dialog
===================
65660/Progman/Window
===================




看到差别没有?IE6上Browser(":=").GetROProperty("hwnd")和oie.hwnd的结果相同,但IE8上两者不同,原因是IE8是多标签的浏览器,Browser(":=")对象的hwnd,nativeclass和micclass分别是67734/TabWindowClass/Browser,而oie对象的hwnd,nativeclass和micclass分别是198488/IEFrame/Window,Browser(":=")只是ioe内部的一个tab。

zhangkun90 发表于 2013-1-24 10:27:45

回复 9# 泰然


    这样啊天呢,,,, 佩服奥学习了 谢谢哈

xjwldlover 发表于 2013-1-24 10:42:57

学习了

黑羽祭 发表于 2013-1-24 11:20:31

学习了~

ld469 发表于 2013-1-29 13:20:14

回复 10# zhangkun90


    好文,分析透彻必须顶!!!

qilaidi 发表于 2013-2-7 16:45:01

回复 9# 泰然

学习了!!谢谢分析!!

ysm145 发表于 2013-4-1 13:55:14

用getToProperty(“hwnd”)获取到值为什么是空

My_duo 发表于 2013-5-4 12:32:14

今天也看到这一章了。学习了。
页: [1]
查看完整版本: 用Browser("hwnd:="& ieHwnd).Close关闭浏览器时 出错。