| 1 | #include <IE.au3>
|
|---|
| 2 | AutoItSetOption("WinTitleMatchMode",2)
|
|---|
| 3 |
|
|---|
| 4 | Dim $tmp2,$tmp3,$tmp4,$tmp6,$tmp7,$tmp8,$tmp9,$z=0
|
|---|
| 5 |
|
|---|
| 6 | AttachToIEObject()
|
|---|
| 7 |
|
|---|
| 8 | Func AttachToIEObject()
|
|---|
| 9 | Do
|
|---|
| 10 | $tmp3 = 0
|
|---|
| 11 | While $tmp3 = 0 ; loop until an Internet Explorer window is active
|
|---|
| 12 | $tmp3 = WinActive("Windows Internet Explorer")
|
|---|
| 13 | Sleep(2000)
|
|---|
| 14 | WEnd
|
|---|
| 15 | if $tmp3 = 1 Then ; if IE is active
|
|---|
| 16 | $tmp4 = WinGetHandle("Windows Internet Explorer") ; get the handle of the IE window
|
|---|
| 17 | If IsHWnd($tmp4) Then ; if it's valid,
|
|---|
| 18 | $tmp6 = ControlGetHandle($tmp4,"","[CLASS:TabWindowClass]") ; get the handle of the tab that is in focus
|
|---|
| 19 | EndIf
|
|---|
| 20 | If IsHWnd($tmp6) Then ; if the tab window is valid,
|
|---|
| 21 | $tmp7 = ControlGetHandle($tmp6,"","[CLASS:Shell DocObject View]") ; get the handle of the Shell DocObject
|
|---|
| 22 | EndIf
|
|---|
| 23 | If IsHWnd($tmp7) Then ; if it's valid
|
|---|
| 24 | $tmp8 = ControlGetHandle($tmp7,"","[CLASS:Internet Explorer_Server]") ; finally get the handle to the IE control
|
|---|
| 25 | ; we had to crawl down from the parent IE window
|
|---|
| 26 | ; to get this handle so that we get the tab the user
|
|---|
| 27 | ; is working in
|
|---|
| 28 | EndIf
|
|---|
| 29 | If IsHwnd($tmp4) And IsHWnd($tmp6) And IsHWnd($tmp7) And IsHWnd($tmp8) Then ; if all of the above handles are valid,
|
|---|
| 30 | $tmp9 = __IEControlGetObjFromHWND($tmp8) ; get the object of the IE control (THIS IS WHERE IT ALWAYS FAILS IN 3.2.10.0)
|
|---|
| 31 | ; It always works in 3.2.8.1
|
|---|
| 32 | ; Rest of the code is removed for the bug report file
|
|---|
| 33 | EndIf
|
|---|
| 34 | EndIf
|
|---|
| 35 |
|
|---|
| 36 | Until $z = 1 ; loop forever
|
|---|
| 37 | EndFunc
|
|---|
| 38 |
|
|---|
| 39 |
|
|---|