Hi Tom,

    OK, I understand. I also discovered that listing all the names I can at 
least find what is being used, like the different ways of calling a status 
bar.
    Also, the same thing I used to find the systreeview32 in my other issue. 
So, filtering out for that and setting a control, I can get all the stuff I 
need there as long as I set it up when the app first runs and not on the 
fly...in other words a global object...
    Thats OK, for when experimenting all these different techniques become 
just a little more clear in when to use them. Funny thing about 
experimenting and see what works in order to learn.

    Yes, do not trust Microsoft, let alone all others, in using standard 
stuff. Names are the best way to call them out on it.

    Thanks, Bruce

Sent: Monday, August 15, 2011 7:42 PM
Subject: Re: Reading Status Bar in Notepad and Word 2007


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