Leaderboard
Popular Content
Showing content with the highest reputation on 11/18/2017 in all areas
-
Pause script by mouseleft
Earthshine reacted to JLogan3o13 for a topic
@hackerheart dog ate your help file? Look at _IsPressed; 01 for left mouse button,1 point -
Hello. You could do this: Global $ColumnC[5] Global $ColumnB[5] $ColumnC[0] = "300.0" $ColumnC[1] = "300.0" $ColumnC[2] = "300.1" $ColumnC[3] = "300.0" $ColumnC[4] = "300.1" $ColumnB[0] = "Sample1" $ColumnB[1] = "Sample2" $ColumnB[2] = "Sample3" $ColumnB[3] = "Sample4" $ColumnB[4] = "Sample5" ;make sure $ColumnC and $ColumnB have same bound For $i = 0 To UBound($ColumnC) - 1 If $ColumnC[$i] = "300.1" Then FileWrite(@ScriptDir & "\IC3.txt", $ColumnB[$i] & " " & $ColumnC[$i] & @CRLF) EndIf Next Saludos1 point
-
For what you are wanting to do _FileWriteFromArray is the wrong function to use. It is designed to write the whole or specified section of the array to a file at once. As such it creates a new file each time overwriting any existing file. For your purposes you need to use FileWrite or FileWriteLine as shown in the example below. #include <FileConstants.au3> Global $ColumnC[10] Global $ColumnB[10] $ColumnC[1]="300.0" $ColumnC[2]="300.0" $ColumnC[3]="300.1" $ColumnC[4]="300.0" $ColumnC[5]="300.1" $ColumnB[1]="Sample1" $ColumnB[2]="Sample2" $ColumnB[3]="Sample3" $ColumnB[4]="Sample4" $ColumnB[5]="Sample5" Local $hFile = FileOpen(@ScriptDir & "\IC3.txtm", $FO_OVERWRITE) For $i= 0 to UBound($ColumnC) -1 ;~ ConsoleWrite($ColumnC[$i] & @LF) If $ColumnC[$i]="300.1" Then FileWriteLine(@ScriptDir & "\IC3.txt", $ColumnB[$i] & " " & $ColumnC[$i]) EndIf Next FileClose($hFile) ConsoleWrite(UBound($ColumnC))1 point
-
HookDlgBox UDF
argumentum reacted to funkey for a topic
Thanks. I was quite sure I repaired this. I first used DlgWnd but then I found out that Microsoft is talking about Dialog Boxes. Here another example with other dialog boxes #include <Misc.au3> #include "HookDlgBox.au3" ; force german custum button texts for FileOpenDialog _DlgBox_SetButtonNames("Datei öffnen", "Auswahl abbrechen") FileOpenDialog("Test", @ScriptDir, "AutoIt scriptses (*.au3)") _DlgBox_SetButtonNames(Default) _DlgBox_SetPosition(500, 100) _ChooseColor() _DlgBox_SetButtonNames("Lets go", "No no") _ChooseFont()1 point -
Goodo. Personally, I find it rare to use Capslock, and usually I find it more trouble than it is worth ... when a dumb finger turns it ON without telling you, and you either don't notice the light (generally at far right and out of your central view) or just don't have one or it's stopped working. So the very rare times I might want to type continuously in UPPERCASE, mean the Capslock key is kind of mostly redundant, and I could easily live without it, so personally I would like to disable it or have it ONLY work for something else. Failing that, having something to keep tabs on it and turn it OFF if ON, would be great. P.S. Clearly I am not one of those very good typists, who keep their view on the screen and notice errors before much has been typed ... if only. And YES, I have done some typing courses ... I did work in a Communications Center once ... but unless you regularly type on pages, and are not constantly doing Form like material, it is hard to maintain a rhythm, and I find rhythm is key (sic) to success with good typing.1 point
-
ValeryVal, This could be useful if you not have too many events. By the way, all four examples in post #112 works now. Here is an example with the structure change event handler. When you download exe-files in IE9, IE10 or IE11 a notification bar shows up in the bottom of the window. This example automatically clicks the save and close buttons when the notification shows up. If a security scan notification or a download completed notification shows up the close button will be clicked. Here is the code: #include "CUIAutomation2.au3" Opt( "MustDeclareVars", 1 ) Global Const $S_OK = 0x00000000 Global Const $E_NOINTERFACE = 0x80004002 Global Const $sIID_IUnknown = "{00000000-0000-0000-C000-000000000046}" Global $tIUIAutomationStructureChangedEventHandler, $oIUIAutomationStructureChangedEventHandler Global $oUIAutomation MainFunc() Func MainFunc() ; Create custom event handler object for structure change events $oIUIAutomationStructureChangedEventHandler = ObjectFromTag( "oIUIAutomationStructureChangedEventHandler_", $dtagIUIAutomationStructureChangedEventHandler, $tIUIAutomationStructureChangedEventHandler, True ) If Not IsObj( $oIUIAutomationStructureChangedEventHandler ) Then Return ; Create UI Automation object $oUIAutomation = ObjCreateInterface( $sCLSID_CUIAutomation, $sIID_IUIAutomation, $dtagIUIAutomation ) If Not IsObj( $oUIAutomation ) Then Return ; Create UI element ;Local $pUIElement ;$oUIAutomation.GetRootElement( $pUIElement ) ; Desktop ;If Not $pUIElement Then Return ; Create UI element Local $hWindow, $pUIElement $hWindow = WinGetHandle( "[CLASS:IEFrame]" ) ; Internet Explorer $oUIAutomation.ElementFromHandle( $hWindow, $pUIElement ) If Not $pUIElement Then Return ; Add structure change event handler If $oUIAutomation.AddStructureChangedEventHandler( $pUIElement, $TreeScope_Subtree, 0, $oIUIAutomationStructureChangedEventHandler ) Then Exit HotKeySet( "{ESC}", "Quit" ) While Sleep(100) WEnd EndFunc Func Quit() $oIUIAutomationStructureChangedEventHandler = 0 DeleteObjectFromTag( $tIUIAutomationStructureChangedEventHandler ) Exit EndFunc ; Get property ($id) for UI element ($obj) Func _UIA_getPropertyValue( $obj, $id ) Local $tVal $obj.GetCurrentPropertyValue( $id, $tVal ) If Not IsArray( $tVal ) Then Return $tVal Local $tStr = $tVal[0] For $i = 1 To UBound( $tVal ) - 1 $tStr &= "; " & $tVal[$i] Next Return $tStr EndFunc ; List all descendants of the parent UI element ; in a hierarchical structure like a treeview. Func ListDescendants( $oParent, $iLevel, $iLevels = 0 ) If Not IsObj( $oParent ) Then Return If $iLevels And $iLevel = $iLevels Then Return Local $pRawWalker, $oRawWalker $oUIAutomation.RawViewWalker( $pRawWalker ) $oRawWalker = ObjCreateInterface( $pRawWalker, $sIID_IUIAutomationTreeWalker, $dtagIUIAutomationTreeWalker ) Local $pUIElement, $oUIElement $oRawWalker.GetFirstChildElement( $oParent, $pUIElement ) $oUIElement = ObjCreateInterface( $pUIElement, $sIID_IUIAutomationElement, $dtagIUIAutomationElement ) Local $sIndent = "" For $i = 0 To $iLevel - 1 $sIndent &= " " Next While IsObj( $oUIElement ) ConsoleWrite( $sIndent & "Title = " & _UIA_getPropertyValue( $oUIElement, $UIA_NamePropertyId ) & @CRLF & _ $sIndent & "Class = " & _UIA_getPropertyValue( $oUIElement, $UIA_ClassNamePropertyId ) & @CRLF & _ $sIndent & "Ctrl type = " & _UIA_getPropertyValue( $oUIElement, $UIA_ControlTypePropertyId ) & @CRLF & _ $sIndent & "Ctrl name = " & _UIA_getPropertyValue( $oUIElement, $UIA_LocalizedControlTypePropertyId ) & @CRLF & _ $sIndent & "Value = " & _UIA_getPropertyValue( $oUIElement, $UIA_LegacyIAccessibleValuePropertyId ) & @CRLF & _ $sIndent & "Handle = " & Hex( _UIA_getPropertyValue( $oUIElement, $UIA_NativeWindowHandlePropertyId ) ) & @CRLF & @CRLF ) ListDescendants( $oUIElement, $iLevel + 1, $iLevels ) $oRawWalker.GetNextSiblingElement( $oUIElement, $pUIElement ) $oUIElement = ObjCreateInterface( $pUIElement, $sIID_IUIAutomationElement, $dtagIUIAutomationElement ) WEnd EndFunc Func oIUIAutomationStructureChangedEventHandler_HandleStructureChangedEvent( $pSelf, $pSender, $iChangeType, $pRuntimeId ) ; Ret: long Par: ptr;long;ptr ; Create sender object Local $oSender = ObjCreateInterface( $pSender, $sIID_IUIAutomationElement, $dtagIUIAutomationElement ) $oSender.AddRef() ; Get object class Local $sClass $oSender.GetCurrentPropertyValue( $UIA_ClassNamePropertyId, $sClass ) ; Only handle objects of class "Frame Notification Bar" If $sClass = "Frame Notification Bar" Then ; Print object properties ConsoleWrite( @CRLF & _ "Title = " & _UIA_getPropertyValue( $oSender, $UIA_NamePropertyId ) & @CRLF & _ "Class = " & _UIA_getPropertyValue( $oSender, $UIA_ClassNamePropertyId ) & @CRLF & _ "Ctrl type = " & _UIA_getPropertyValue( $oSender, $UIA_ControlTypePropertyId ) & @CRLF & _ "Ctrl name = " & _UIA_getPropertyValue( $oSender, $UIA_LocalizedControlTypePropertyId ) & @CRLF & _ "Value = " & _UIA_getPropertyValue( $oSender, $UIA_LegacyIAccessibleValuePropertyId ) & @CRLF & _ "Handle = " & Hex( _UIA_getPropertyValue( $oSender, $UIA_NativeWindowHandlePropertyId ) ) & @CRLF & @CRLF ) If $iChangeType = 0 Then ; Window open event ConsoleWrite( "Notification Bar opened" & @CRLF & @CRLF ) Else ; $iChangeType = 1 ; Window close event ConsoleWrite( "Notification Bar closed" & @CRLF & @CRLF ) Return $S_OK EndIf ; List descendants of the object ConsoleWrite( "Descendants of the Frame Notification Bar:" & @CRLF & @CRLF ) ListDescendants( $oSender, 0, 0 ) ; Condition to find Save button (split button) Local $pCondition $oUIAutomation.CreatePropertyCondition( $UIA_ControlTypePropertyId, $UIA_SplitButtonControlTypeId, $pCondition ) If Not $pCondition Then Return $S_OK ; Find Save button Local $pSave, $oSave $oSender.FindFirst( $TreeScope_Descendants, $pCondition, $pSave ) If $pSave Then ; Click Save and Close buttons in the first "Frame Notification Bar" window $oSave = ObjCreateInterface( $pSave, $sIID_IUIAutomationElement, $dtagIUIAutomationElement ) If Not IsObj( $oSave ) Then Return $S_OK ; Click (invoke) Save button Local $pInvoke, $oInvoke $oSave.GetCurrentPattern( $UIA_InvokePatternId, $pInvoke ) $oInvoke = ObjCreateInterface( $pInvoke, $sIID_IUIAutomationInvokePattern, $dtagIUIAutomationInvokePattern ) If Not IsObj( $oInvoke ) Then Return $S_OK $oInvoke.Invoke() ConsoleWrite( "Save button clicked" & @CRLF & @CRLF ) ; Condition to find Close button Local $pCondition1, $pCondition2 $oUIAutomation.CreatePropertyCondition( $UIA_ControlTypePropertyId, $UIA_ButtonControlTypeId, $pCondition1 ) $oUIAutomation.CreatePropertyCondition( $UIA_NamePropertyId, "Close", $pCondition2 ) $oUIAutomation.CreateAndCondition( $pCondition1, $pCondition2, $pCondition ) If Not $pCondition Then Return $S_OK ; Find Close button Local $pClose, $oClose $oSender.FindFirst( $TreeScope_Descendants, $pCondition, $pClose ) $oClose = ObjCreateInterface( $pClose, $sIID_IUIAutomationElement, $dtagIUIAutomationElement ) If Not IsObj( $oClose ) Then Return $S_OK ; Click (invoke) Close button Local $pInvoke, $oInvoke $oClose.GetCurrentPattern( $UIA_InvokePatternId, $pInvoke ) $oInvoke = ObjCreateInterface( $pInvoke, $sIID_IUIAutomationInvokePattern, $dtagIUIAutomationInvokePattern ) If Not IsObj( $oInvoke ) Then Return $S_OK $oInvoke.Invoke() ConsoleWrite( "Close button clicked" & @CRLF & @CRLF ) Else ; Click Close button in the next "Frame Notification Bar" windows ; Condition to find Close button Local $pCondition1, $pCondition2 $oUIAutomation.CreatePropertyCondition( $UIA_ControlTypePropertyId, $UIA_ButtonControlTypeId, $pCondition1 ) $oUIAutomation.CreatePropertyCondition( $UIA_NamePropertyId, "Close", $pCondition2 ) $oUIAutomation.CreateAndCondition( $pCondition1, $pCondition2, $pCondition ) If Not $pCondition Then Return $S_OK ; Find Close button Local $pClose, $oClose $oSender.FindFirst( $TreeScope_Descendants, $pCondition, $pClose ) $oClose = ObjCreateInterface( $pClose, $sIID_IUIAutomationElement, $dtagIUIAutomationElement ) If Not IsObj( $oClose ) Then Return $S_OK ; Click (invoke) Close button Local $pInvoke, $oInvoke $oClose.GetCurrentPattern( $UIA_InvokePatternId, $pInvoke ) $oInvoke = ObjCreateInterface( $pInvoke, $sIID_IUIAutomationInvokePattern, $dtagIUIAutomationInvokePattern ) If Not IsObj( $oInvoke ) Then Return $S_OK $oInvoke.Invoke() ConsoleWrite( "Close button clicked" & @CRLF & @CRLF ) EndIf EndIf Return $S_OK EndFunc Func oIUIAutomationStructureChangedEventHandler_QueryInterface( $pSelf, $pRIID, $pObj ) ; Ret: long Par: ptr;ptr* Local $sIID = StringFromGUID( $pRIID ) If $sIID = $sIID_IUnknown Then ConsoleWrite( "oIUIAutomationStructureChangedEventHandler_QueryInterface: IUnknown" & @CRLF ) DllStructSetData( DllStructCreate( "ptr", $pObj ), 1, $pSelf ) oIUIAutomationStructureChangedEventHandler_AddRef( $pSelf ) Return $S_OK ElseIf $sIID = $sIID_IUIAutomationStructureChangedEventHandler Then ConsoleWrite( "oIUIAutomationStructureChangedEventHandler_QueryInterface: IUIAutomationStructureChangedEventHandler" & @CRLF ) DllStructSetData( DllStructCreate( "ptr", $pObj ), 1, $pSelf ) oIUIAutomationStructureChangedEventHandler_AddRef( $pSelf ) Return $S_OK Else ConsoleWrite( "oIUIAutomationStructureChangedEventHandler_QueryInterface: " & $sIID & @CRLF ) Return $E_NOINTERFACE EndIf EndFunc Func oIUIAutomationStructureChangedEventHandler_AddRef( $pSelf ) ; Ret: ulong ConsoleWrite( "oIUIAutomationStructureChangedEventHandler_AddRef" & @CRLF ) Return 1 EndFunc Func oIUIAutomationStructureChangedEventHandler_Release( $pSelf ) ; Ret: ulong ConsoleWrite( "oIUIAutomationStructureChangedEventHandler_Release" & @CRLF ) Return 1 EndFunc Func StringFromGUID( $pGUID ) Local $aResult = DllCall( "ole32.dll", "int", "StringFromGUID2", "struct*", $pGUID, "wstr", "", "int", 40 ) If @error Then Return SetError( @error, @extended, "" ) Return SetExtended( $aResult[0], $aResult[2] ) EndFunc ; Copied and slightly modified (print methods) from this post by trancexx: ; http://www.autoitscript.com/forum/topic/153520-iuiautomation-ms-framework-automate-chrome-ff-ie/page*#entry1143566 Func ObjectFromTag($sFunctionPrefix, $tagInterface, ByRef $tInterface, $fPrint = False, $bIsUnknown = Default, $sIID = "{00000000-0000-0000-C000-000000000046}") ; last param is IID_IUnknown by default If $bIsUnknown = Default Then $bIsUnknown = True Local $sInterface = $tagInterface ; copy interface description Local $tagIUnknown = "QueryInterface hresult(ptr;ptr*);" & _ "AddRef dword();" & _ "Release dword();" ; Adding IUnknown methods If $bIsUnknown Then $tagInterface = $tagIUnknown & $tagInterface ; Below line is really simple even though it looks super complex. It's just written weird to fit in one line, not to steal your attention Local $aMethods = StringSplit(StringReplace(StringReplace(StringReplace(StringReplace(StringTrimRight(StringReplace(StringRegExpReplace(StringRegExpReplace($tagInterface, "\w+\*", "ptr"), "\h*(\w+)\h*(\w+\*?)\h*(\((.*?)\))\h*(;|;*\z)", "$1\|$2;$4" & @LF), ";" & @LF, @LF), 1), "object", "idispatch"), "hresult", "long"), "bstr", "ptr"), "variant", "ptr"), @LF, 3) Local $iUbound = UBound($aMethods) Local $sMethod, $aSplit, $sNamePart, $aTagPart, $sTagPart, $sRet, $sParams, $hCallback ; Allocation $tInterface = DllStructCreate("int RefCount;int Size;ptr Object;ptr Methods[" & $iUbound & "];int_ptr Callbacks[" & $iUbound & "];ulong_ptr Slots[16]") ; 16 pointer sized elements more to create space for possible private props If @error Then Return SetError(1, 0, 0) For $i = 0 To $iUbound - 1 $aSplit = StringSplit($aMethods[$i], "|", 2) If UBound($aSplit) <> 2 Then ReDim $aSplit[2] $sNamePart = $aSplit[0] $sTagPart = $aSplit[1] $sMethod = $sFunctionPrefix & $sNamePart If $fPrint Then Local $iPar = StringInStr( $sTagPart, ";", 2 ), $t If $iPar Then $t = "Ret: " & StringLeft( $sTagPart, $iPar - 1 ) & " " & _ "Par: " & StringRight( $sTagPart, StringLen( $sTagPart ) - $iPar ) Else $t = "Ret: " & $sTagPart EndIf Local $s = "Func " & $sMethod & _ "( $pSelf ) ; " & $t & @CRLF & _ "EndFunc" & @CRLF ConsoleWrite( $s ) EndIf $aTagPart = StringSplit($sTagPart, ";", 2) $sRet = $aTagPart[0] $sParams = StringReplace($sTagPart, $sRet, "", 1) $sParams = "ptr" & $sParams $hCallback = DllCallbackRegister($sMethod, $sRet, $sParams) ConsoleWrite(@error & @CRLF & @CRLF) DllStructSetData($tInterface, "Methods", DllCallbackGetPtr($hCallback), $i + 1) ; save callback pointer DllStructSetData($tInterface, "Callbacks", $hCallback, $i + 1) ; save callback handle Next DllStructSetData($tInterface, "RefCount", 1) ; initial ref count is 1 DllStructSetData($tInterface, "Size", $iUbound) ; number of interface methods DllStructSetData($tInterface, "Object", DllStructGetPtr($tInterface, "Methods")) ; Interface method pointers Return ObjCreateInterface(DllStructGetPtr($tInterface, "Object"), $sIID, $sInterface, $bIsUnknown) ; pointer that's wrapped into object EndFunc Func DeleteObjectFromTag(ByRef $tInterface) For $i = 1 To DllStructGetData($tInterface, "Size") DllCallbackFree(DllStructGetData($tInterface, "Callbacks", $i)) Next $tInterface = 0 EndFunc One issue with the code: I think the button name "Close" is localized. You should use your own button name. And here is the output in Scite console: Func oIUIAutomationStructureChangedEventHandler_QueryInterface( $pSelf ) ; Ret: long Par: ptr;ptr EndFunc 0 Func oIUIAutomationStructureChangedEventHandler_AddRef( $pSelf ) ; Ret: dword EndFunc 0 Func oIUIAutomationStructureChangedEventHandler_Release( $pSelf ) ; Ret: dword EndFunc 0 Func oIUIAutomationStructureChangedEventHandler_HandleStructureChangedEvent( $pSelf ) ; Ret: long Par: ptr;long;ptr EndFunc 0 oIUIAutomationStructureChangedEventHandler_QueryInterface: IUnknown oIUIAutomationStructureChangedEventHandler_AddRef oIUIAutomationStructureChangedEventHandler_Release oIUIAutomationStructureChangedEventHandler_AddRef oIUIAutomationStructureChangedEventHandler_QueryInterface: {0000001B-0000-0000-C000-000000000046} oIUIAutomationStructureChangedEventHandler_QueryInterface: {00000003-0000-0000-C000-000000000046} oIUIAutomationStructureChangedEventHandler_AddRef oIUIAutomationStructureChangedEventHandler_QueryInterface: {0000001B-0000-0000-C000-000000000046} oIUIAutomationStructureChangedEventHandler_QueryInterface: IUnknown oIUIAutomationStructureChangedEventHandler_AddRef oIUIAutomationStructureChangedEventHandler_AddRef oIUIAutomationStructureChangedEventHandler_QueryInterface: {00000018-0000-0000-C000-000000000046} oIUIAutomationStructureChangedEventHandler_QueryInterface: {00000019-0000-0000-C000-000000000046} oIUIAutomationStructureChangedEventHandler_QueryInterface: {4C1E39E1-E3E3-4296-AA86-EC938D896E92} oIUIAutomationStructureChangedEventHandler_Release oIUIAutomationStructureChangedEventHandler_QueryInterface: IUIAutomationStructureChangedEventHandler oIUIAutomationStructureChangedEventHandler_AddRef oIUIAutomationStructureChangedEventHandler_AddRef oIUIAutomationStructureChangedEventHandler_QueryInterface: {1C733A30-2A1C-11CE-ADE5-00AA0044773D} oIUIAutomationStructureChangedEventHandler_QueryInterface: IUIAutomationStructureChangedEventHandler oIUIAutomationStructureChangedEventHandler_AddRef Title = Class = Frame Notification Bar Ctrl type = 50033 Ctrl name = pane Value = Handle = 00010602 Notification Bar opened Descendants of the Frame Notification Bar: Title = Notification Class = DirectUIHWND Ctrl type = 50021 Ctrl name = tool bar Value = Handle = 00010604 Title = Notification bar Text Class = Ctrl type = 50020 Ctrl name = text Value = Do you want to run or save autoit-v3-setup.exe (10,9 MB) from autoitscript.com? Handle = 00000000 Title = Run Class = Ctrl type = 50000 Ctrl name = button Value = Handle = 00000000 Title = Save Class = Ctrl type = 50031 Ctrl name = split button Value = Handle = 00000000 Title = Class = Ctrl type = 50031 Ctrl name = split button Value = Handle = 00000000 Title = Cancel Class = Ctrl type = 50000 Ctrl name = button Value = Handle = 00000000 Title = Close Class = Ctrl type = 50000 Ctrl name = button Value = Handle = 00000000 Save button clicked Close button clicked Title = Class = Frame Notification Bar Ctrl type = 50033 Ctrl name = pane Value = Handle = 00010602 Notification Bar closed Title = Class = Frame Notification Bar Ctrl type = 50033 Ctrl name = pane Value = Handle = 00010602 Notification Bar opened Descendants of the Frame Notification Bar: Title = Notification Class = DirectUIHWND Ctrl type = 50021 Ctrl name = tool bar Value = Handle = 00010604 Title = Notification bar Text Class = Ctrl type = 50020 Ctrl name = text Value = Running security scan Handle = 00000000 Title = View downloads Class = Ctrl type = 50000 Ctrl name = button Value = Handle = 00000000 Title = Close Class = Ctrl type = 50000 Ctrl name = button Value = Handle = 00000000 Close button clicked Title = Class = Frame Notification Bar Ctrl type = 50033 Ctrl name = pane Value = Handle = 00010602 Notification Bar closed Title = Class = Frame Notification Bar Ctrl type = 50033 Ctrl name = pane Value = Handle = 00010602 Notification Bar opened Descendants of the Frame Notification Bar: Title = Notification Class = DirectUIHWND Ctrl type = 50021 Ctrl name = tool bar Value = Handle = 00010604 Title = Notification bar Text Class = Ctrl type = 50020 Ctrl name = text Value = The autoit-v3-setup (9).exe download has completed. Handle = 00000000 Title = Run Class = Ctrl type = 50000 Ctrl name = button Value = Handle = 00000000 Title = Open folder Class = Ctrl type = 50000 Ctrl name = button Value = Handle = 00000000 Title = View downloads Class = Ctrl type = 50000 Ctrl name = button Value = Handle = 00000000 Title = Close Class = Ctrl type = 50000 Ctrl name = button Value = Handle = 00000000 Close button clicked Title = Class = Frame Notification Bar Ctrl type = 50033 Ctrl name = pane Value = Handle = 00010602 Notification Bar closed oIUIAutomationStructureChangedEventHandler_Release Tested on Win 7 with IE 11.1 point