| Thanks. I have downloaded it for exploration. I'm sure I soon will be
| pestering you with questions. :-)
| --
Fire away. :)
And feel free to write to me if questions are too specific
for posting here. There's a fairly thorough help, file, and
samples that cover each method, but it's all quite complex.
Active Accessibility, alone, is very complex. And the Win32
API functions for windows (which I've tried to wrap as
efficiently as possible) are extensive.
If you get into dealing with windows a lot you might want
to try to find some of the SDK software for that. I don't
have links offhand, but available Win32 Platform SDKs may
have some of it. Two programs that really stand out are
spyxx.exe, known as "Spy++", and AccExplorer.exe.
* Spy++ - allows you to view all open windows, in their
hierarchies, as a simple treeview list. That makes it
easy to map out the window structure of a program
window. Spy++ probably comes in the SDK.
* AccExplorer - comes with the AA SDK v. 1.3. It allows you
to pick an open window and see everything that AA can
see. The AA view overlaps with the Windows window
hierarchy view, but is more extensive.
I don't think AccExplorer comes with the v. 2 AA SDK.
From what I could see that package seems to be inferior
to the v. 1.3 SDK.
AA is an interesting thing. The idea was to provide
functionality for screen readers, etc. (For those who
may not know, accessibility is the P.C. euphemism for
functionality to help handicapped people.)
I have a friend who's blind, so I got into
exploring AA some time ago. Unfortunately, Windows was
never designed for accessibility in the first place. MS
added it later, mainly through oleacc.dll, but they could
only tack AA on top of the existing strucure, and they
never really bothered to finish it. AA is really just a
repackaging of all the window APIs in the Win32 API.
It can do a lot, but the object model is quirky and
unfinished; difficult to use. The jsShell (and former jsAA)
methods are an attempt to clean up the funky AA COM
interfaces and make them more usable by presenting them
as a sensible object model.
Actual screen reader software has to use all
sorts of little hacks in order to work because AA just
can't do it all.
MS later came up with User Interface Automation
(UIA) in Vista/7, which I looked into. But as far as I can see
UIA is really just a repackaging of AA to cater to .Net
programmers. (AA is very COM-heavy and uses a lot of
Variant data types. .Net doesn't handle COM well and
variant is not a native .Net type.)
There have actually been several updates to AA and
to UIA, etc., but as far as I can tell those have mainly
been to provide better support for newer MS Office
programs and to provide the .Net-friendly APIs.
... Much ado about nothing, but with more extensive
dependencies. An AA version of at least 1.3, which jsShell
depends on, is pre-installed on nearly all current Windows
systems, so it can be thought of as a pre-installed, core
system library.