SayTools 1.1 released

  • From: Jamal Mazrui <empower@xxxxxxxxx>
  • To: jawsscripts@xxxxxxxxxxxxx, programmingblind@xxxxxxxxxxxxx, program-l@xxxxxxxxxxxxx, uaccess-l@xxxxxxxxxxxxxx
  • Date: Fri, 6 Jun 2008 21:45:13 -0400 (EDT)

SayTools is a COM server and set of command-line utilities that enable
applications developed in various languages to incorporate speech messages
that increase nonvisual usability.  The JAWS, System Access, or
Window-Eyes screen reader is used for speech if found, and SAPI speech is
also supported.

This version adds two methods called exec and Eval, which provide access
to the Python interpreter at runtime.  Each method takes five parameters:
a string containing the code to be run and four variant data items that it
can use, these being referenced as v1, v2, v3, and v4 within the code.
Generally, the variants are either numbers or Unicode strings.  The return
value is also a variant.

The Exec method runs one or more Python statements seperated by a line
feed character.  The Eval method works similarly except that the last line
of code is evaluated as an expression (not statement) and the result is
returned.  Besides builtin Python functions, SayTools imports the
following Python modules for possible work in such code:  ctypes, os, sys,
win32api, win32com.client, and win32gui.

The Exec and Eval methods can significantly extend the abilities of a
screen reader to interrogate the computer system and perform useful tasks,
including ones enabled via dynamic API calls to Windows or third party
DLLs.  Like any capability, however, this can also be misused, and so
should be treated as a security risk with untrusted client programs.
Check the SayTools Samples for demonstrations of Exec and Eval, as well as
the Python documentation for the many functions available in the imported
modules.  Although the SayTools COM server loads relatively quickly given
its functionality, best performance in a client program is gained by
instantiating it once at startup, and then using a reference to the same
object over the life of the program.


View the list's information and change your settings at

Other related posts:

  • » SayTools 1.1 released