Hey Bruce,

Sorry. I should have said I knew it wouldn't work in Word instead of just giving the example of Notepad. It would be too much to expect Microsoft to use their own standards. But that's a given.

And just to clarify, wtStatus is not a window name. It's an enumeration defined within the Window-Eyes object model. In the app developers guide you'll find it under enumerations, WindowType. All the standard window types are defined this way; wtDialog, wtButton, wtCheckbox, wtEdit, etc. But they only apply to standard controls. So I just usually use this method first via the immediate mode app because it's quick and easy. If it fails, then I go on the hunt for the non-standard controls and how to reliably pick them out of the crowd.

Hth,
Tom


On 8/15/2011 1:26 PM, BT wrote:

Hi Again Tom,

     It came up with a count of 0. I suspected this when Chip said something
was not normal. Also, the list of 31 names did not come up with wtStatus...
     What I posted works for some windows so will see what happens in the
future.
         Bruce

Sent: Monday, August 15, 2011 1:02 AM
Subject: Re: Reading Status Bar in Notepad and Word 2007


Here's a little more direct method to get a status bar when it's a
standard status bar window, as in Notepad. Note, in some programs it
will be a direct child and others it won't. So use DirectChildren or
Children as needed. You can find out quickly in the immediate mode
window. Although, if it is a direct child it will still be considered a
child as well. So check the direct children first. There are usually
many more children. So using DirectChildren will have to check fewer
window objects.

Set oStatusWindows = ActiveWindow.DirectChildren.FilterByType(wtStatus)

This will return a collection which may be more than one if it's an MDI
window.

Hth,
Tom


On 8/14/2011 11:21 PM, BT wrote:

To All,

      There is more than one status bar in Word 2007 and the name is
different
than what is in Notepad so this is what I did to get it to speak the
status
bar in my Page_Num app to get the line and column number in Notepad and
now
at least the Page and word count in Word 2007.

you have more than one status bar in Woord 2007 so do a loop and speak it.
This is one of 2 methods to get the item number for the object in 2007 for
it will not return an object until you know it's location.

App Segment:
   dim objMainWindow, objStatusBarWindow, objResults
   set objMainWindow = activeWindow.overlap
'First Notepad:
   set objResults = objMainWindow.children.filterByName(
"msctls_statusbar32")
   if not objResults is nothing then
    if objResults.count>   0 then
     ' Window Found!
     set objStatusBarWindow = objResults(1) ' where 1 is the location for
the
Status Bar object.
     SpeakStatusBar objStatusBarWindow
     Exit Sub
    end if
   end if
' Word 2007:
    set objResults = objMainWindow.children.filterByName( "status bar")
    if not objResults is nothing then
      ' Go through the collection of status bar objects.
     For Each objStatusBarWindow in objResults
      SpeakStatusBar objStatusBarWindow
      Exit Sub
     Next
    End If
End Sub

Sub SpeakStatusBar( oStatusbar)
     ' now speak contents of the object clips.
' First convert any text for easier reading.
     Dim txt: txt = oStatusbar.clips.clipstext
     txt = Replace( txt, "Ln", " Line ")
     txt = Replace( txt, "Col", " column ")
     txt = Replace( txt, ",", " ")
     Speak txt
End Sub





Reply via email to