Instead of relying on the reclass information, uncomment the OutputDebugString 
lines, grab a copy of DbgView 
(https://technet.microsoft.com/en-us/library/bb896647.aspx), then run the app. 
The information in DbgView will tell you the class names of the windows getting 
focus.

Aaron

-- 
Aaron Smith 
Web Development * App Development * Product Support Specialist
Ai Squared * 725 Airport North Office Park, Fort Wayne, IN 46825
260-489-3671 * www.aisquared.com

To insure that you receive proper support, please include all past 
correspondence (where applicable), and any relevant information pertinent to 
your situation when submitting a problem report to the Ai Squared Technical 
Support Team.

> -----Original Message-----
> From: Scripting [mailto:scripting-
> [email protected]] On Behalf Of Rick
> Thomas via Scripting
> Sent: Thursday, March 19, 2015 4:51 AM
> To: 'Window-Eyes Scripting List'
> Subject: Aarons Visual Studio Script Question
> 
> Hi: In Visual Studio 2013 Community Edition:
> 
> I used the Reclass hot key to check out the class of the error window
> grabbing focus away from the text editor:
> 
> click error check in menu
> 
> Focus window: Original class:
> 
> RTaskList
> 
> Window Style:
> 
> 44300000
> 
> Above is correct but below happens when i then change anything move and
> or copy and paste:
> 
> change bad code arrow down focus goes to:
> 
> RTaskList
> 
> 44300000
> 
> Focus Should have stayed in the text editor but is grabbed by what I think is
> the error list.
> 
> Blasting through the code below if MSAA is still working properly it looks 
> like
> this sub should stop this inadvertent speeking of the error window but it
> doesnt.
> 
> See any obvious ideas of why it may not be working in WE 9.1 but why it may
> have worked in 8.4?
> 
> You can jump to the line:
> 
> "                ElseIf windowObj.ClassName = "RTaskList" Then"
> 
> to see the code that should handle this I think unless I am mising something.
> 
> 
> 
> Sub OnChildFocus(windowObj)
> 
>     If Not windowObj Is Nothing Then
> 
>         If windowObj.IsValid Then
> 
>             On Error Resume Next
> 
>             ' This debug is left in on purpose
> 
>             'OutputDebugString  "@@@ IN " & windowObj.ModuleName & ":" &
> windowObj.ClassName & ", " & windowObj.Name & ", " & windowObj.Title &
> "
> @@@" & vbCrLf
> 
>             'OutputDebugString  "@@@ IN (Parent) " &
> windowObj.Parent.ModuleName & ":" & windowObj.Parent.ClassName & ",
> " & windowObj.Parent.Name & ", " & windowObj.Parent.Title & " @@@" &
> vbCrLf
> 
>             'OutputDebugString  "In supportedModules? " &
> SO_InVBArray(supportedModules, windowObj.ModuleName) & vbCrLf
> 
>             On Error Goto 0
> 
>             If SO_InVBArray(supportedModules, windowObj.ModuleName) Then
> 
> ' RtNote: the correct module name is in the array.
> 
>                 If windowObj.Name = "PropertyGridView" Then
> 
>                     ' The Property window
> 
>                     Speak myStrings("PROPERTIES")
> 
>                     ' Ensure all previous hooking is disabled
> 
>                     UnHookEverything
> 
> 
> 
>                     ' We're going to handle all MSAA focus evens ourselves.
> We'll do this by blocking focus events from Window-Eyes, and then
> 
>                     ' hooking the focus events with our own event handler
> 
>                     Set blockFocusEvent =
> MSAAEventSource.BlockEvent(event_OBJECT_FOCUS,
> ClientInformation.ApplicationProcess)
> 
>                     msaaEventObjectFocus = ConnectEvent(myMSAAEventSource,
> "OnObjectFocus", "OnObjectFocus")
> 
>                 Else
> 
>                     If TypeName(windowObj.Parent) <> "Empty" Then
> 
>                         Dim winParent : Set winParent = windowObj.Parent
> 
>                         If Not winParent Is  Nothing Then
> 
>                             If winParent.Name = "OverlayControl" Or 
> windowObj.Name =
> "DesignerFrame" Then
> 
>                                 ' The form design window
> 
>                                 Speak myStrings("DESIGN_WINDOW")
> 
>                                 ' Ensure all previous hooking is disabled.
> 
>                                 UnHookEverything
> 
> 
> 
>                                 ' The form designer has a lot of event 
> information that we
> want to handle ourselves, so we'll block all the relevant events from
> Window-Eyes
> 
>                                 ' then hook them with our own event handler.
> 
>                                 Set blockLocationChangeEvent =
> MSAAEventSource.BlockEvent(event_OBJECT_LOCATIONCHANGE,
> ClientInformation.ApplicationProcess)
> 
>                                 Set blockValueChangeEvent =
> MSAAEventSource.BlockEvent(event_OBJECT_VALUECHANGE,
> ClientInformation.ApplicationProcess)
> 
>                                 Set blockNameChangeEvent =
> MSAAEventSource.BlockEvent(event_OBJECT_NAMECHANGE,
> ClientInformation.ApplicationProcess)
> 
>                                 Set blockSelectionEvent =
> MSAAEventSource.BlockEvent(event_OBJECT_SELECTION,
> ClientInformation.ApplicationProcess)
> 
>                                 Set blockFocusEvent =
> MSAAEventSource.BlockEvent(event_OBJECT_FOCUS,
> ClientInformation.ApplicationProcess)
> 
>                                 Set blockShowEvent =
> MSAAEventSource.BlockEvent(event_OBJECT_SHOW,
> ClientInformation.ApplicationProcess)
> 
> 
> 
>                                 msaaEventObjectLocationChange =
> ConnectEvent(myMSAAEventSource, "OnObjectLocationChange",
> "OnObjectLocationChange")
> 
>                                 msaaEventObjectValueChange =
> ConnectEvent(myMSAAEventSource, "OnObjectValueChange",
> "OnObjectValueChange")
> 
>                                 msaaEventObjectNameChange =
> ConnectEvent(myMSAAEventSource, "OnObjectNameChange",
> "OnObjectNameChange")
> 
>                                 msaaEventObjectSelection =
> ConnectEvent(myMSAAEventSource, "OnObjectSelection",
> "OnObjectSelection")
> 
>                                 msaaEventObjectFocus =
> ConnectEvent(myMSAAEventSource, "OnObjectFocus", "OnObjectFocus")
> 
>                                 msaaEventObjectShow =
> ConnectEvent(myMSAAEventSource, "OnObjectShow", "OnObjectShow")
> 
>                             End If
> 
>                         End If
> 
>                     End If
> 
>                 End If
> 
>             ElseIf windowObj.ModuleName = "MSENV" Then
> 
>                 If windowObj.ClassName = "VsTextEditPane" Then
> 
>                     ' The code window
> 
>                     Speak myStrings("CODE_WINDOW")
> 
>                     ' Ensure all previous hooking is disabled.
> 
>                     UnHookEverything
> 
>                 ElseIf windowObj.ClassName = "RTaskList" Then
> 
>                     ' The Error/Warnings/Output window
> 
>                     ' Ensure all previous hooking is disabled.
> 
>                     UnHookEverything
> 
> 
> 
>                     ' Block focus and selection from Window-Eyes, and handle 
> those
> events ourselves.
> 
>                     Set blockFocusEvent =
> MSAAEventSource.BlockEvent(event_OBJECT_FOCUS,
> ClientInformation.ApplicationProcess)
> 
>                     Set blockSelectionEvent =
> MSAAEventSource.BlockEvent(event_OBJECT_SELECTION,
> ClientInformation.ApplicationProcess)
> 
> 
> 
>                     msaaEventObjectFocus = ConnectEvent(myMSAAEventSource,
> "OnObjectFocus", "OnObjectFocus")
> 
>                     msaaEventObjectSelection = ConnectEvent(MSAAEventSource,
> "OnObjectSelection", "OnObjectSelection")
> 
>                 ElseIf windowObj.ClassName = "ToolWindowSelect" Then
> 
>                     ' The Control-Tab window
> 
>                     Speak myStrings("TOOL_WINDOW")
> 
>                     ' Ensure all previous hooking is disabled.
> 
>                     UnHookEverything
> 
> 
> 
>                     ' Block focus and selection from Window-Eyes, and handle 
> those
> events ourselves.
> 
>                     Set blockFocusEvent =
> MSAAEventSource.BlockEvent(event_OBJECT_FOCUS,
> ClientInformation.ApplicationProcess)
> 
>                     Set blockSelectionEvent =
> MSAAEventSource.BlockEvent(event_OBJECT_SELECTION,
> ClientInformation.ApplicationProcess)
> 
> 
> 
>                     msaaEventObjectFocus = ConnectEvent(myMSAAEventSource,
> "OnObjectFocus", "OnObjectFocus")
> 
>                     msaaEventObjectSelection = ConnectEvent(MSAAEventSource,
> "OnObjectSelection", "OnObjectSelection")
> 
>                 ElseIf windowObj.ClassName = "TBToolboxPane" Then
> 
>                     ' The toolbox pane (Control-Alt-X)
> 
>                     ' Ensure all previous hooking is disabled.
> 
>                     UnHookEverything
> 
> 
> 
>                     ' Block focus from Window-Eyes, and handle those events
> ourselves.
> 
>                     Set blockFocusEvent =
> MSAAEventSource.BlockEvent(event_OBJECT_FOCUS,
> ClientInformation.ApplicationProcess)
> 
>                     msaaEventObjectFocus = ConnectEvent(myMSAAEventSource,
> "OnObjectFocus", "OnObjectFocus")
> 
>                 Else
> 
>                     ' Ensure all previous hooking is disabled.
> 
>                     UnHookEverything
> 
>                 End If
> 
>             Else
> 
>                 ' Ensure all previous hooking is disabled.
> 
>                 UnHookEverything
> 
>             End If
> 
>         End If
> 
>     End If
> 
> End Sub
> 
> 
> 
> I dont want to start a heavy analysis of the problem but if you see anything
> that jumps out at you or you have something I can check out to determine
> why it is not working let me know.
> 
> Rick USA
> 
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL: <http://lists.window-eyes.com/private.cgi/scripting-window-
> eyes.com/attachments/20150319/8aba175d/attachment.htm>
> _______________________________________________
> Any views or opinions presented in this email are solely those of the author
> and do not necessarily represent those of Ai Squared.
> 
> For membership options, visit http://lists.window-
> eyes.com/options.cgi/scripting-window-
> eyes.com/asmith%40aisquared.com.
> For subscription options, visit http://lists.window-
> eyes.com/listinfo.cgi/scripting-window-eyes.com
> List archives can be found at http://lists.window-
> eyes.com/private.cgi/scripting-window-eyes.com


_______________________________________________
Any views or opinions presented in this email are solely those of the author 
and do not necessarily represent those of Ai Squared.

For membership options, visit 
http://lists.window-eyes.com/options.cgi/scripting-window-eyes.com/archive%40mail-archive.com.
For subscription options, visit 
http://lists.window-eyes.com/listinfo.cgi/scripting-window-eyes.com
List archives can be found at 
http://lists.window-eyes.com/private.cgi/scripting-window-eyes.com

Reply via email to