Re: Screen Reader in VB6

  • From: "Bob J." <rjustice004@xxxxxxxxxx>
  • To: <programmingblind@xxxxxxxxxxxxx>
  • Date: Sun, 24 Feb 2008 21:22:49 -0800

Ok, John, thanks.  I think my biggest problem is that I really don't know
anything about the Windows OS so most of that is a mystery to me.  Maybe if
I can find the docs about MSAA it will make more sense to me.

Thanks again,

Bob


----- Original Message ----- 
From: "John Greer" <jpgreer17@xxxxxxxxxxx>
To: <programmingblind@xxxxxxxxxxxxx>
Sent: Sunday, February 24, 2008 3:57 PM
Subject: Re: Screen Reader in VB6


Most of all of what is happening in the screen reader code can be explained
by studying through the Microsoft MSAA and SAPI 5 tts documentation
distributed with the MSAA API and the SAPI 5 SDK.  But yeah most of what it
is doing is interpreting MSAA information that is built into Windows, much
like Narrator does.  The ModAADeclares.bas file is all of the state, object
and event constants that MSAA monitors for.  The main routine of the program
takes the MSAA register numbers, and then uses the ModAADeclares.bas file to
assign them a human understandable constant such as selected, not selected,
button, checkbox etc.  It then passes that info to SAPI 5 to be read using
text to speech.  A short answer, I know but I would need to write
documentation as long as the MSAA documentation Microsoft publishes to
explain all of what is going on.  But yeah the same as Narrator if the
controls it is trying to read do not pass information through to MSAA then
the screen reader does not know what the control is.  The other thing the
source code does not have is keyboard hooks.  What this means is that in its
present state you may not be able to assign the control key to stop the
screen reader from speaking etc.  It is however able to use the keyboard
functions built into windows such as arrowing around the screen,copy, paste
etc. etc.  I hope this explained things at least a little.  Oh you may also
notice that it can't speak its own Window.  That was one of those unsquashed
bugs I never got around to working out.  However if you run another screen
reader along side it you will find that there are MSAA objects that get
printed to the edit boxes such as Name, Description, Value, Role etc. and
also hook and unhook buttons that, you guessed it, turn on and off the MSAA
event monitoring.
----- Original Message ----- 
From: "Bob J." <rjustice004@xxxxxxxxxx>
To: <programmingblind@xxxxxxxxxxxxx>
Sent: Sunday, February 24, 2008 7:13 PM
Subject: Re: Screen Reader in VB6


> Hello John,
>
> I was hoping that I might learn how a screen reader is able to spy on
> other
> programs by inspecting the code in this project.  However, there is nearly
> no documentation included and what little there is doesn't seem very
> revealing to me.  I don't suppose that you have any documentation that
> discusses how or why this code should act as a screen reader.
>
> Any and all assistance appreciated!
>
> Bob
>
>
> ----- Original Message ----- 
> From: "John Greer" <jpgreer17@xxxxxxxxxxx>
> To: <programmingblind@xxxxxxxxxxxxx>
> Sent: Saturday, February 23, 2008 1:41 PM
> Subject: Screen Reader in VB6
>
>
> Here is a little modified project that I had found the original source to
> on
> the net sometime back.  I can no longer find the page I got the original
> source from though.  What it is is the basics of a Narrator like screen
> reader written in VB6.  I have mostly been using it as a testing tool for
> various projects but it does have the potential to become much more.  I
> have
> uploaded it to my website if anyone would care to download it and try
> their
> hand at it.
> Be aware that is of course not bug free, but I do remember at one point I
> had it reading messages in Windows Messenger to give an example of what is
> possible.
> www.blindcrawler.com/Programs/MSAAScreenReaderVB6.zip
> Enjoy and have fun.
>
> __________
> View the list's information and change your settings at
> //www.freelists.org/list/programmingblind
>
>

__________
View the list's information and change your settings at
//www.freelists.org/list/programmingblind

__________
View the list's information and change your settings at 
//www.freelists.org/list/programmingblind

Other related posts: