DISCLAIMER: The following information concerns an out of date version of Window-Eyes. Program features and enhancements may not reflect the current state of Window-Eyes development. GW Micro may not be liable for any errors, inaccuracies, omissions, or out-of-date information contained herein. For information regarding the current version of Window-Eyes, please refer to the Latest Features page.

Window-Eyes: Performance, Reliability, and Stability
"Unleashing the power of your mind's eye."
©1995-2008 GW Micro, Inc. All Rights Reserved
E-Mail: support@gwmicro.com
Phone: 260-489-3671
Released: 10/23/2008

[Please note: The following information can also be found in the Window-Eyes Readme option, under the Help menu in the Window-Eyes Control Panel.]
Welcome to Window-Eyes 7.01
Congratulations!

GW Micro is proud to offer Window-Eyes 7.01, potentially the most anticipated release in the history of Window-Eyes. In addition to new powerful features like Placemarkers, enhanced control search features, inclusion of a new synthesizer, and so much more, Window-Eyes 7.01 is the first version of Window-Eyes to provide scripting capabilities. Whether you're new to scripting, or if you're a seasoned programmer, you will be able to take advantage of all the scripting possibilities Window-Eyes has to offer. In the past, GW Micro has stated that Window-Eyes did not include a complex, proprietary scripting language, and with this release we continue to stand by that claim. Window-Eyes 7.01 scripting uses industry standard practices to provide a scripting interface that is common and consistent, using tools that already exist in the Windows operating system. Window-Eyes scripting gives you the power to interact, not only with Window-Eyes features and options, but with other applications, with operating system features, with windows, dialogs, controls and so much more. Keep reading to learn more about all of the new features in Window-Eyes.
Keeping In Touch

Now that you have the power of Window-Eyes at your fingertips, why not join up with other Window-Eyes users on the GW-Info e-mail list? To subscribe, visit http://www.gwmicro.com/support/email_lists/, enter your email address in the email edit box, and select the Subscribe GW-Info button. Alternatively, you can send an e-mail message to listserv@gwmicro.com. Leave the subject blank, and type "join gw-info, your email address" in the body (without the quotes, but note that the comma is required). For example, "join gw-info, myemail@abc.com"

Regardless of the method you choose, you will receive a confirmation. Reply to that confirmation (with no modification) and you will become a member of the largest public network of Window-Eyes users, always eager and willing to answer any questions you may have. Although we encourage all users to help each other with questions and problems, you can take comfort in knowing that the GW-Info list is constantly monitored by GW Micro employees.

You may also contact us directly by using the contact information listed above.
Thank You!

Window-Eyes is developed with you in mind. Please feel free to contact us regarding any questions, comments, or suggestions that you may have; we are anxious to hear from you. Now read on to learn more about your latest investment, and thank you for choosing Window-Eyes!
IMPORTANT INFORMATION

The following documentation consists of important information that you need to know before using this version of Window-Eyes.

* You must already have an existing copy of Window-Eyes 6.1 or Window-Eyes 7.0 installed (Retail, Demo, Evaluation, and Payment Plan versions are all supported) before installing Window-Eyes 7.01. If you are running an earlier version of Window-Eyes prior to Window-Eyes 6.1, you will need to uninstall that version, and install a new copy of Window-Eyes 7.01.

This readme is divided up into various sections. The start of each major section will begin with two plus signs and the start of each minor section will begin with two minus signs. This means that you can search for ++ to move to the start of a major section, and -- to move to the start of a minor section. If you are reading the manual on a Windows PC using Notepad, we recommend maximizing the Notepad window with ALT-SPACE, then X. It is also a good idea to make sure that "word wrap" is enabled. This is usually found under the format menu of Notepad.
++Enhancements between Window-Eyes 7.01 and Window-Eyes 7.0

We have resolved several memory leaks, and fixed several stability issues thanks to the Window-Eyes error reporting feature. Window-Eyes 7.01 is a significant improvement over Window-Eyes 7.0 in terms of stability and responsiveness.

We fixed a problem where Window-Eyes could hang while leaving and entering Browse mode quickly.

We fixed a problem where list boxes were not reading correctly in Visual Studio 2005/2008.

We fixed a a problem where Browse Mode would not refresh when a link was activated in Firefox 3.

Many upper Unicode characters (most above 7fh) were not getting translated correctly in English grade 2 braille. This problem has been resolved.

If the user profile path contained Unicode characters that didn't map into ANSI, you were not able to install script package files. This problem has been resolved.

Window-Eyes would only read part of words with upper Unicode characters in PowerPoint 2003. This problem has been resolved.

Added the WEUpdate script to the factory default scripts. This script will automatically check for Window-Eyes updates and let you know if there is an update available.

--iTunes

We resolved several issues relating to iTunes, including support for using the Window-Eyes Find command while in the iTunes store, resolving the issue of not being able to activate links using the Insert-Tab dialog, resolving the double reading in listviews and treeviews, speaking expanded and collapsed when you open and close tree view nodes, speaking the pull down menus correctly under Windows Vista, and resolving a problem where set files could not be associated to the iTunes window (or any window whose title was null). In addition, Window-Eyes does not automatically enable Browse Mode when the iTunes Store option is selected, meaning you can successfully arrow through all of the main items without suddenly getting tossed into Browse Mode.
--Scripting

If Window-Eyes is localized in a language that a script was not localized in, the hotkeys won't work because they're not localized to the Window-Eyes language. To resolve this issue, we have added a new property to the Key object called UntranslatedName. From now on, our policy is to hard code default hotkey names in your script, always in English, even if you are writing the script in another language, because Window-Eyes will always be able to interrupt English hotkey names. They can still be displayed to the user in the script language, but they should be stored in INI files, and in scripts as English. This way no matter what language Window-Eyes is localized in, or what languages the script you are trying to use is localized in, the hotkeys will always work. Once again, default hotkey names should not exist in the XML resource, because they should never be localized. Keyboard.Key will accept both Key.Name and Key.Unstranslated name. Refer to the documentation for more information.

Added Mouse.ButtonDownEx and Mouse.ClickEx methods. Both methods provide the ability to enhance their respective functions with key modifiers. In addition, ClickEx fixes a problem of interrupting speech after performing the mouse click.

If a null string was returned through various Speech event handlers, speech would get disabled. This was mainly a problem with Visual Basic which would return null for speech events that weren’t specifically hooked. This problem has been resolved.

The scripting error dialog would sometimes pass a blank string for the error description. Now, if Window-Eyes cannot retrieve the error description, a default message will be used rather than displaying a blank string.

You can now use language id strings in the XML resource, such as "en" or "en-us" instead of having to use a hexadecimal number.

If was possible for a script to not successfully restart, but you would still hear the restart message. This problem has been resolved.

We fixed a problem where scripts could error when invoking Keyboard.Registerhotkey on launch.

We fixed a problem where you couldn't Control or Shift-Click using the keyboard (meaning you couldn't tap the Control key and then press the Left Mouse button hotkey to perform a left click).

We fixed a version comparison problem when installing script package files.

Window-Eyes now ensures that any read only attributes on script files being installing, uninstall, or used when created packages are cleared. This resolved a problem of script files not getting installed, or removed correctly.

The Window-Eyes Scripting Manual has been updated.
++New Features in Window-Eyes 7.0
--Scripting

Window-Eyes 7.0 is proud to offer what may be the most anticipated feature in Window-Eyes history: full scripting functionality. Using industry standard methods scripts give you the tools to make Window-Eyes do almost anything you can think of related to working with applications and the operating system itself.
--What is Scripting?

Scripts, in their most basic form, are simple text files containing instructions for Window-Eyes to follow. Scripts can also be external programs that talk to Window-Eyes using a special (although industry standard) communication method.

Much like set files, scripts can be used to modify settings in Window-Eyes, monitor portions of the screen for specific kinds of activity, define hotkeys, and so on. In fact, anything a set file can do, a script can do. Instead of replacing set file functionality, scripting extends the features that set files offer, and provides even more access to the inner workings of Window-Eyes.

Window-Eyes scripting also provides the unprecedented ability to create custom dialogs using XML. In other words, visually impaired users have the power to create simple to advanced user interfaces using a text file format -- visual drawing tools need not apply.
--How it Works

The Window-Eyes scripting engine is a COM Automation server. COM Automation, according to Microsoft, is "a technology that allows software packages to expose their unique features to scripting tools and other applications." That means all the guts of Window-Eyes are accessible through various objects, properties, methods, and events (these items make up the Window-Eyes Object Model). In addition, Window-Eyes embeds ActiveScript engines (including VBScript and JScript). This means that you can create scripts in VBScript, JScript (which is Microsoft's proprietary version of JavaScript), or any language that supports COM automation.

Are you a Perl programmer, and want to use PerlScript? Be our guest. Do you prefer Python? Then why not create your scripts in ActivePython? Granted, the PerlScript, PythonScript, and similar parsing engines would need to be installed on machines where the scripts in those languages are going to be used. But if you're only creating scripts for yourself, and you happen to be an excellent Perl programmer, you have the power. Are you a C++ programmer? Are you a Visual Basic programmer? Do you use VBA, PHP, or .NET? Regardless of the language you choose, as long as it supports COM Automation, you can make Window-Eyes sing (literally, if you want).

Another advantage to the Window-Eyes scripting model is support for future languages. If a language is released in the future that supports COM automation, it can be used to power Window-Eyes.

Unlike other scripting engines' limited exposing of their interface to other applications and the use of proprietary languages, Window-Eyes scripting is an open server that not only hosts clients (i.e. scripts, executables, etc.), but also exposes itself through COM Automation to other applications. In other words, in addition to creating scripts that Window-Eyes can host, you can also access Window-Eyes objects from other programs. The possibilities are endless.
--Getting Started

The Window-Eyes File menu contains a new pull down to help manage both scripts and set files. It is aptly named Manage Sets and Scripts (with a shortcut of M). The Manage Sets and Scripts menu contains several options, including:

U = Scripting Status - Controls whether the Window-Eyes scripting engine is On, Off, or set to Manual. When set to On, scripting is available. When set to Off, scripting is not available. When set to Manual, scripting is available, but scripts will not run automatically, but only when started manually.
A = Add or Remove Scripts and Sets - Displays a dialog used for Adding or Removing Window-Eyes Packages. Window-Eyes packages are created by the Package Manager discussed below. The Sets/Scripts Add Remove dialog is similar to the Windows Add Remove control panel in that you can manage the installation of scripts in one central location.
M = Script Manager - This dialog provides you with information about running scripts. It also lets you stop running scripts, control script security, manage advanced options, and access a script's help and options.
P = Package Manager - The package manager lets you package together multiple files, such as scripts, or sets, or scripts and sets, into a single package file that can be used with the Add or Remove Scripts and Sets feature discussed previously.
C = Encrypt Scripts - If you need to protect your scripts from prying eyes, you can use the Encrypt Script option to encrypt your script files using a custom Window-Eyes cipher scheme.

The rest of the items in this pull down menu deal with set files, and are the same tools that existed in the File menu in previous versions of Window-Eyes.

Note that the Window-Eyes Menu Level option under the Global menu will affect the availability of items in the Manage Sets and Scripts menu. When the menu level is set to beginner or intermediate, only Scripting Status, Add or Remove Scripts and Sets, Script Manager, and Set File Manager will be available. All menu options become available when the menu level is set to advanced.
--New Dialogs

Let's examine each of the new dialogs that Window-Eyes scripting support provides for managing scripts.

Add or Remove Sets and Scripts

As mentioned previously, this dialog lets you control the installation of script packages that were created using the Window-Eyes Package Manager. Many script packages can be obtained from GW Micro's Script Central website (www.gwmicro.com/sc) -- more on that later. The Add/Remove dialog contains the following controls:

Installed Scripts - List box - Displays all installed scripts, along with their version numbers (if supplied) and installation date.

Add - Button - Prompts for the name of a Window-Eyes package file. Package files use the .wepm extension, which stands for Window-Eyes Package Management. Select a package name, and press enter to begin the package installation.

Remove - Button - Removes the selected package and all associated files.

Close - Button - Closes the dialog.

Window-Eyes packages file types are registered with the operating system as belonging to the Add or Remove Sets and Scripts dialog. This means that you can select a package file in, say, Windows Explorer, press Enter on it, and the Add or Remove Sets and Scripts dialog will open, ready to install the selected package. This also means you can launch packages directly from web pages by selecting the Run option in your browser's download dialog instead of saving the file first (although that option still exists -- the choice really is up to you). In addition, if Window-Eyes is not running when a package is activated, Window-Eyes will start up, and launch the Add or Remove Scripts and Sets dialog ready to install the selected package. Once the installation is complete, Window-Eyes will remain running.

Script Manager

If you are a script user, you may find yourself in the Script Manager dialog to view running scripts, and to retrieve a script's help and options. If you are a script developer, you will often find yourself in the Script Manager, using the start and stop options to restart your scripts during development, loading and unloading scripts for testing, setting up your default script editor for quick editing access, and more. The Script Manager dialog contains the following controls:

Scripts - List View - The scripts list view contains a list of all running scripts, based on the Display Scripts radio button selection, discussed next.

Display Scripts
All (by Name) - Radio button - When this radio button is selected, all running scripts will be displayed sorted by filename. In addition to the filename, the Scripts list view also contains whether the script is designed to run globally or for an application (either "Global" or the associated application's name will be listed), the window title (if a script is associated to an application -- global scripts will leave this entry blank), the scripts status (i.e. running, stopped, etc.), and description (this is the description that the script itself provides using the ScriptDescription property of the ClientInformation object -- refer to the Window-Eyes Scripting Manual for more information on the ClientInformation object).
All (by Application) - Radio button - When this radio button is selected, all running scripts will be displayed sorted by the names of the applications the scripts are associated with, or global if they are not associated with a specific application. The Scripts list view contains the script's filename, whether the script is designed to run globally or for an application (either "Global" or the associated application's name will be listed), the window title (if a script is associated to an application -- global scripts will leave this entry blank), the scripts status (i.e. running, stopped, etc.), and description (this is the description that the script itself provides using the ScriptDescription property of the ClientInformation object -- refer to the Window-Eyes Scripting Manual for more information on the ClientInformation object).
Global - Radio button - When this radio button is selected, only those scripts that have been designated to run globally (i.e. running always, regardless of what application is active) will be listed. The list Scripts list view contains the script's filename, the scripts status (i.e. running, stopped, etc.), and description (this is the description that the script itself provides using the ScriptDescription property of the ClientInformation object -- refer to the Window-Eyes Scripting Manual for more information on the ClientInformation object).
Application - Radio button - This radio button will contain the name of the application that was active when the script manager was displayed. When this radio button is selected, only those scripts that have been designated to run when a specific application runs will be listed. The list Scripts list view contains the script's filename, the scripts status (i.e. running, stopped, etc.), and description (this is the description that the script itself provides using the ScriptDescription property of the ClientInformation object -- refer to the Window-Eyes Scripting Manual for more information on the ClientInformation object).

Show More Options - Check box - By default, the Script Manager dialog only displays the Scripts list view, the Display Scripts radio button group, the Stop button, the Help and Options button, the Close button, and this check box (which also defaults to unchecked). If this check box is checked, several more buttons will be displayed, offering advanced options for loading/unloading, enabling/disabling, and starting/stopping scripts, along with Security options for defining what scripts should be trusted, and some other miscellaneous advanced options. The state of this check box is remembered after the dialog closes.

Load - Button - Only available when Show More Options is checked - Selecting this button prompts for the filename of a script to load. If the Application radio button was selected prior to activating the Load button, the selected script will be associated with that application (in other words, it will only run when that application runs). If the Global radio button was selected prior to activating the Load button, the selected script will be associated globally (in other words, it will run always, regardless of what applications run). If either the All (by Name) or All (by Application) radio button is selected, the Load button will be disabled. You must choose whether to have the script you want to load run globally or for a specific application by selecting the appropriate radio button before loading the script.

Unload - Button - Only available when Show More Options is checked - Unloads the selected script in the Script list view. Once a script has been unloaded, it will be removed from the Scripts list, and will no longer run automatically. This script is not, however, removed from the hard drive. It is instead simply ignored. The Add or Remove Sets and Scripts dialog should be used to uninstall and remove scripts from the hard drive.

Start/Stop - Button - If the selected script in the Scripts list view has a status of something other than running, this button will have the label Start, and when activated will cause the selected script to run, and the status of the script will switch to running (assuming there are no errors). If the selected script has a status of something other than stopped, this button will have the label Stop, and when activated will cause the selected script to stop running. After a script is stopped, it will remain in the list of scripts with a status of stopped. If the script is global, and scripting is restarted, the stopped script will attempt to run again. If the script is application specific, and the application is closed and re-opened, the stopped script will attempt to run again. If the Window-Eyes scripting status is set to manual, stopped scripts will only run if they are started manually using this button. If the Window-Eyes scripting status is set to off, this button will be disabled.

Help and Options - Button - If a script has provided help information through the ScriptHelp property of the ClientInformation object, this button will be enabled, and when activated will display information the script author provided. If this button is disabled, then the selected script did not provide any help information through the ScriptHelp property of the ClientInformation object -- refer to the Window-Eyes Scripting Manual for more information on the ClientInformation object. If the Window-Eyes scripting status is set to off, this button will be disabled.

Close - Button - Activating this button closes the Script Manager dialog.

Enable/Disable - Button - Only available when Show More Options is checked - If the selected script in the Scripts list view has a status of disabled, this button will have the label Enabled. If the Window-Eyes scripting status is set to on, and a disabled script is enabled, the script will run automatically. If the Window-Eyes Scripting Status is set to Manual, and a disabled script is enabled, it will not run automatically. If the selected script in the Scripts list view has a status of anything other than disabled, this button will have the label Disable, and when activated will disable the selected script from running until it has been enabled. If the Window-Eyes scripting status is set to off, this button will be disabled.

Reload - Button - Only available when Show More Options is checked - When this button is activated, the selected script in the Scripts list view will be recycled. In other words, if the selected script is running, and this button is activated, the selected script will be stopped and then started again. If the script is already stopped, and this button is activated, the selected script will be started. If the Window-Eyes scripting status is set to off, this button will be disabled.

Edit - Button - Only available when Show More Options is checked - When this button is activated, the selected script in the Scripts list view will be opened in the editor specified in the Advanced options dialog (discussed below). If no default editor is specified, the script will open in Notepad.

Security - Button - Only available when Show More Options is checked - When this button is activated, the Script Security dialog (discussed below) will be displayed.

Advanced - Button - Only available when Show More Options is checked - When this button is activated, the Advanced Script Settings dialog (discussed below) will be displayed.

Script Security

Window-Eyes Scripting takes security very seriously, and implements several security features that will provide the most novice user to the most advanced corporate system administrator the with the tools to ensure a safe computing environment.

The Script Security dialog allows you to define how Window-Eyes should trust scripts, and if it should trust scripts, what kinds of scripts should be trusted. The Script Security dialog contains the following controls:

Security Level
Allow All Scripts - Radio button - When this radio button is selected (and it is by default) all scripts will be trusted.
Allow Only Trusted Scripts - Radio button - When this radio button is selected, Window-Eyes will only allow trusted scripts to run. Trust level is based on the check boxes discussed below.

Script Status - List view - This list view contains a list of all installed scripts, their publisher (if they've been digitally signed), and their trusted status. The Script Status list view, as well as the other controls in this dialog aside from the initial radio buttons, will only be enabled if the Allow Only Trusted Scripts radio button is selected.

Publisher Trusted - Check box - If the selected script in the Script Status list view has been digitally signed, this check box will be enabled. If this check box is checked, Window-Eyes will trust all scripts containing the same digital signature. The trusted status in the Script Status list view will update to reflect the trusted status for all scripts containing the trusted digital signature (by changing the status to Publisher Trusted). If this check box is unchecked, the selected script's trust level will not be based on the script's digital signature.

Script Trusted - Check box - If this check box is checked, Window-Eyes will trust the script itself, and the trusted status in the Script Status list view will update to Script Trusted. If this check box is not checked, the selected script's trust level will not be based on the script itself.

Note that if both the Publish Trusted and Script Trusted check boxes are checked, the Script Status list view will show Both Trusted as the script's status, meaning that the script itself has been trusted, as has the publisher who signed the script with a digital signature.

View Certificate - Button - If a selected script has been digitally signed, this button will be enabled, and when activated will display the script's digital signature certificate.

Ok - Button - Closes the Script Security dialog, saving any changes.

Cancel - Button - Closes the Script Security dialog, canceling any changes.

If Window-Eyes is set to run only trusted scripts, and a trusted script is modified (either by the digital signature changing, or if there is no digital signature, by the script itself changing), Window-Eyes will no longer trust the script, and the script will no longer run. The script would need to be trusted again in its new form in order for Window-Eyes to run it successfully.

In addition to script security, Window-Eyes Scripting also honors any operating system software restriction policies enabled by system administrators.

Advanced Script Settings

The Advanced Script Settings dialog provides you with some miscellaneous utilities that make advanced scripting a bit easier. The dialog contains the following controls:

Script Editor - Read only edit box - This edit box displays the full path to the selected script editor.

Specify Editor - Button - When activated this button prompts for the full path to the application to be designated as the default script editor. The default script editor is Notepad.

Fast Reload Script - Read only edit box - This edit box displays the name and path of the script that will be reloaded automatically when the Reload Script hotkey (undefined, by default) is pressed. This provides a quick way to reload a script without going into the Script Manager. It is ideal for working in applications where reloading is necessary to test new script features during script development.

Assign Script - Button - When activated assigns the selected script in the Script Manager dialog to be the fast reload script.

Remove Script - Button - When activated removes the current fast reload script.

Close - Button - Closes the Advanced Script Settings dialog.

Package Manager

The Package Manager provides an easy way for script developers to package all of their files together in a single file archive for easy distribution. Unlike other utilities that provide multiple file compression (ZIP, for example), Window-Eyes packages are designed for use with the Window-Eyes Add or Remove Scripts and Sets dialog, which helps users manage the scripts they have installed. Selecting the Package Manager option from the Manage Sets and Scripts menu will result in a dialog with three buttons: Create New Package, Modify Existing Package, and Cancel. Create New Package will start the package creation from scratch. Modify Existing Package let's you select an existing package to modify. Cancel simply closes the dialog. Regardless of whether you choose to create a new package, or modify an existing package, the Package Manager dialog includes the following controls:

Files to Package - List box - This list contains all of the files that have been added for packaging.

Associate Globally - Button - When activated this button designates the selected script or scripts in the Files to Package list box to run as global scripts.

Associate with Application - Button - When activated this button designates the selected script or scripts in the Files to Package list box to run with a specific application. When this button is activated, you will be prompted to select a .WE file to associate the scripts to. .WE files are also used to associate set files to an application. You can select an existing .WE file, or type in the name of a .WE file. The .WE file does not have to exist when creating the package. During installation of the package, if the .WE file does not exist on the end user's machine, it will be created automatically; otherwise it will be appended to. This method allows you to provide scripts for an application that may already have set files associated to it. Alternatively, you could choose to include set files with your script files in the package so that everything is available in one place.

Remove Association - Button - When activated this button removes any association for the selected script or scripts in the Files to Package list box.

Associate With - List box - This list contains all of the associations for the selected script or scripts in the Files to Package list box. If a script has a global association, the word Global will be present. Otherwise, the name of the associated .WE file (or files) will be listed.

Version - Edit box - This edit box allows the script developer to provide a version number for the script package. This version number will be displayed in the Add or Remove Scripts and Sets dialog after a package has been installed.

Require shutdown of all scripts before installation - Check box - If this check box is checked, the user will be prompted that all scripts need to be shut down before installation of the package can continue. This is useful when installing scripts that contain shared information other scripts may rely on.

Package Details - Edit box - This edit box allows the script developer to provide important installation details or other notes that need to be displayed before a script package is installed.

License Information - Edit box - This edit box allows the script developer to provide a license that must be confirmed by the user before the script installation will take place. If this edit box is left empty, the end user will not be prompted to confirm a license agreement before installation.

Add Files - Button - When activated prompts for the file or files to be added to the final package.

Remove Files - Button - When activated removes the selected file or files from the Files to Package list box.

Create Package - Button - When activated prompts for a filename to call the final package. The default extension is .wepm. After entering a filename, and pressing Enter (or selecting the Save button), the package will be created.

Close - Button - When activated closes the Package Manager dialog.

Encrypt Scripts

Although GW Micro uses and supports the open source script model, there may be times when a script author needs to protect source code. Window-Eyes Scripting offers that ability using the Encrypt Scripts feature. When this option is selected from the Window-Eyes Manage Sets and Scripts menu item, an open dialog will appear prompting for the name of the script or scripts to be encrypted. Upon confirming the dialog, and the encryption confirmation message, the encrypted versions of the scripts will reside in the same directory as the unencrypted versions, and will contain the extension .wecrypt. For example, encrypting a script called myscript.vbs would result in an encrypted version called myscript.vbs.wecrypt.
--Your First Script

To begin creating scripts, you will need knowledge of the language you're writing your scripts in, as well as information about the Window-Eyes scripting interface (also known as the Window-Eyes object model). GW Micro scripts have been standardized in VBScript, as it is the easiest scripting language syntax to understand for both new and advanced users. The language you choose, however, is ultimately up to you. As mentioned previously, any language that supports COM automation, and all ActiveScript languages are supported.

The documentation for the Window-Eyes object model can be found in the Window-Eyes Help menu. The Window-Eyes object model documentation exists in HTML Help format, and can be navigated just like the Window-Eyes manual (i.e. navigating to the section in the table of contents you want to read, pressing Enter to open the section, pressing F6 to load the section into the Browse Mode buffer, and, when done reading, pressing F6 again to navigate back to the table of contents).

In addition to documentation and language knowledge, you'll also want to pick an editor for writing scripts. Because Window-Eyes hosted scripts are nothing more than text files, you can choose whichever text editor you're most comfortable with. Even something as simple as Notepad will be sufficient for creating scripts.

After reviewing the Window-Eyes Scripting Manual for syntax information, and object details, you find that Window-Eyes contains an Application object with a property called SerialNumber, which returns a string containing the serial number associated with a running copy of Window-Eyes. You also find that the Speech object contains a method called Speak, which takes a string as a parameter. Using that knowledge, you create a single line text file called speakserial.vbs, which contains:

Speak "My serial number is " & SerialNumber

Now that you have a sample script, you must decide how Window-Eyes should run the script. Should it run every time Window-Eyes loads, or should it run only when an application loads? To associate your script globally (so that it will run every time Window-Eyes launches), open the Script Manager dialog, select the Global radio button, then select the Load button. Provide the path and name of your script, and press enter. Your script will run immediately (because it's global, and Window-Eyes is running), and your serial number will be spoken. To associate your script to an application (Notepad, for example), so that it will run every time that application runs, open the Script Manager dialog, select the application radio button, then select the Load button. Provide the path and name of your script, and press enter. Your script will run immediately, because the application you associated it with is already running. If you close the application, and then open it again, your script will also run again.

From this point on, what you decide to do with scripting is up to you. The possibilities are endless. Whether you plan on creating scripts yourself, or whether you only plan on using the scripts others create, we encourage you to join our latest email list: GW-Scripting. GW-Scripting is a discussion list designed to promote ideas and conversation about Window-Eyes scripting. The list can be used as a place to ask questions about scripts, to announce the availability of new scripts, or to request scripts. Although the GW-Info list still applies to all GW Micro related products and services, scripting related inquiries should be directed to the GW-Scripting list for more accurate responses, and to keep GW-Info related traffic to a reasonable amount.

In addition to the GW-Scripting email list, GW Micro is proud to offer Script Central (www.gwmicro.com/sc), a primary repository for Window-Eyes scripts. Script Central is free for everyone. Once you have registered with Script Central, you can log in to upload and manage your own scripts for public distribution, rate existing scripts for their usefulness, provide comments for script developers and users, keep track of your favorite scripts, receive notifications when scripts are updated, and much more.

Script Central also ties into the GW Micro Forum area, which in addition to hosting individual script discussion areas for every script posted to Script Central, also includes general script discussion forums where you can post topics regarding general scripting, script requests, script announcements, the Window-Eyes object model, VBScript, or another popular scripting language, JScript. If your favorite scripting language doesn't have a discussion forum, and you feel others could benefit from a language specific script discussion area, please let us know.

Window-Eyes continues to pride itself in the areas of stability, performance, and reliability. Now that scripting is available, however, it is possible to get your machine into a less than optimal state (think infinite loops and such). Window-Eyes provides several command line options that can be used in a pinch to get Window-Eyes unloaded and reloaded. They are as follows:

Wineyes.exe /k - Removes Window-Eyes from memory. It is important to note that Window-Eyes can only shut itself down successfully if it is running successfully. It is possible that performing a /k at the command line will not execute if Window-Eyes is running in an unreliable state. In that case, you may want to use third party utilities like pskill to stop the Window-Eyes processes.

Wineyes.exe /scripts:off - Runs Window-Eyes with scripting disabled. This is the same as going into the Scripting Status dialog, and setting the scripting option to Off.

Wineyes.exe /scripts:manual - Runs Window-Eyes with scripting set to manual. This is the same as going into the Scripting Status dialog, and setting the scripting option to Manual.

There is no scripts:on option, as just running Window-Eyes normally will default to scripting being enabled (assuming it was not already set to Off or Manual through the Scripting Status dialog).
--Scripting Errors

As you develop scripts, you'll count on reliable error reporting to tell you what's working and what isn't in your scripts. Window-Eyes displays script errors in a custom script error dialog which contains the line and column number corresponding to the error, a short description of the error, and four buttons: Ignore Error (which attempts to continue running the script, despite the error), Stop Script (which stops the script from running), Edit Script (which opens the script in the default editor), and View Help (which, if enabled, will open the Window-Eyes scripting documentation to the section dealing with the object that the error occurred in). You can also press Control-C while the error dialog is being displayed to copy the contents of the error to the clipboard.

Happy scripting!
++Placemarkers

Window-Eyes now offers the ability to set placemarkers on web pages. Window-Eyes Placemarkers easily outperform placemarker features found in other screen readers by offering the ability to search for specific text rather than just hard coding a placemarker to a line number. In today's dynamic web environment, Window-Eyes Placemarkers give you quick and easy access to common web page areas.

To set a place marker, navigate to the line in the Browse Mode buffer that you want to add the placemarker to and press the Place Marker Dialog hotkey (Control-Shift-K by default). The placemarker dialog allows you to set a new placemarker, edit existing placemarkers, or even jump to an existing placemarker. The description of the dialog is as follows:

Name - Edit box - This is the name of the placemarker. This will default to the name of the item you're on in the Browse Mode buffer. For example, if you're on a link called "Window-Eyes" when you bring up the placemarker dialog, the placemarker name will default to "Window-Eyes." You can change the placemarker name to be anything you want.

Hotkey Number - Combo box - This will automatically assign a hot key to the placemarker for quick jumping.

Temporary - Check box - If the temporary checkbox is checked, the placemarker you're adding will be stored in memory until you exit Window-Eyes. If the temporary check box is unchecked, the placemarker you're adding will be stored to disc, and will be available even after Window-Eyes restarts.

Auto Read Lines - Edit box - The Auto Read Lines edit box allows you to specify how many lines of text will be automatically read when you navigate to a placemarker. Each placemarker may have a different number of lines associated with it. The default number of lines is 5.

Apply to:
Webpage - Radio button - If the apply to webpage radio button is selected, the placemarker you're adding will only work on the current web page. For example, a placemarker saved for the web page www.gwmicro.com/support will only work on that web page.
Domain - Radio button - If the apply to domain radio button is selected, the placemarker you're adding will work on any web page containing the same domain name. For example, a placemarker saved for the domain gwmicro.com will work on any page on the gwmicro.com website.

Placemarker Text - Edit box - By default, placemarkers will be associated to the line that you're on in Browse Mode when you bring up the placemarker dialog. Because web pages are so dynamic, it's very possible that the next time you visit the page, the line that you wanted the placemarker to associate to will have changed. The placemarker text edit box allows you to define the text that Window-Eyes will search for if the lines don't match when trying to locate a placemarker. This is used with the second and third radio buttons below.

Position Relative To:
Line Number Only - Radio button - When selected, Window-Eyes will only match line numbers. If the line moves (because the page changes), the line numbers won't match, and the placemarker won't be found.
Line Number and Text - Radio button - When selected, Window-Eyes will only match line numbers with specific text (see the placemarker text edit box above). This is useful if you have text on a page that's constant followed by text that changes. For example, say there's a news page that always begins their main headline with "updated on…" followed by the current date. Using the placemarker text, you can say look on a specific line for the text "updated on", leaving off the date.
Line Number and Text Search - Radio Button - When selected, Window-Eyes will scan the entire page, looking for the text supplied in the placemarker text edit box.

Add Entry - Button - Adds a placemarker. Pressing Enter will also add an entry if you're modifying an entry's properties.

Remove Entry - Button - Removes the selected entry in the Names list box.

Remove All - Button - Removes all the entries in the Names list box.

Jump To - Button - Jumps to the selected entry in the Names list box.

Names - List box - Lists the names of placemarkers based on the following radio buttons.

Display Names By:
Domain - Radio button - When selected, displays all placemarkers available for the current domain in the Names list box mentioned previously.
URL & Domain - Radio button - When selected, displays all placemarkers available for the current web page in the Names list box mentioned previously.

Information - Read only edit box - Displays miscellaneous information regarding the selected placemarker.

Ok - Button - Confirms placemarker changes, and closes the dialog. If you are in the process of adding them, OK will add the last entry. If you are in the process of editing an existing, it will save those and all prior changes.

Cancel - Button - Cancel's whatever you're doing, and closes the dialog. If you added or edited any placemarkers, those changes will be lost.

Once you have defined placemarkers you can press the Next Placemarker hotkey (K by default) to jump to the next placemarker on the page. Press the Prior Placemarker hotkey (Shift-K by default) to go to the prior placemarker. If you assigned a hotkey number to a placemarker, you can type that number (1 through 9) followed by a press of the Jump to Placemarker hotkey (J by default) to have the text at the placemarker read. Pressing the Jump to Placemarker hotkey again will move the Browse Mode cursor to the placemarker line. For example, if you have a placemarker assigned to hotkey 3, you can press 3J to read the text at the placemarker, and press J again to move to the placemarker.

Placemarkers have also been added to the page navigation dialog (Insert-Tab by default).
++Enhanced Control Search

Window-Eyes now offers Browse Mode Enhanced Control Search capabilities. When pressing either the Specified Control Next (N by default) and Specified Control Prior (Shift-N by default) key in Browse Mode, Window-Eyes announces, "In control search mode," and will wait for the next key press, and act on it accordingly. The subsequent key press after pressing the Next/Prior Control key acts as a modifier, adding additional information to the final command.

* C – modifier indicating checked version of the actual control to be specified with the next key press (relevant for checkboxes and radio buttons only)
* U – modifier indicating unchecked version of the actual control to be specified with the next key press (relevant for checkboxes and radio buttons only)
* D – modifier indicating disabled version of the actual control to be specified with the next key press
* ENTER – if a previous version of the next/prior control hotkey was given since the launch of Window-Eyes this will repeat the exact same command. If there was no previous command given since the launch of WE then this will simply navigate to the next/prior control as the hotkey originally functioned.

After pressing the Next/Prior Control hotkey, and an optional modifier, the following keys represent the kind of control to navigate to:

* B - Button
* E - Editbox
* O - Combobox
* X - Checkbox
* R - Radio Button
* L - Listbox
* A - Next any control

For example, pressing N,X will find the next checkbox. Pressing N,U,X will find the next unchecked checkbox. Pressing N,C,X will find the next checked checkbox. And so on. You can also use the number keys (1-9) prior to pressing the Specified Control Next/Prior hot keys to jump from the current location the number specified for the particular control.

The Page Navigation dialog (Insert-Tab by default) now includes a "Controls" radio button. When you select this radio button, all of the controls on the page will be displayed. You type the first letter of a control to move between the control names, or type out the name to select a single control. Once you have selected a control, you can choose to either activate the control or focus it.
++Additional Features

Window-Eyes is now fully Unicode compliant, and offers more localization capabilities for many other languages. While this change is largely internal, there are some UI options affected:
* In the Screen and Keyboard punctuation menus, the control and enhanced options have been removed, as they don't make sense with Unicode. If the punctuation isn't textual, math, or space then it is miscellaneous.
* Ansi/attribute hot keys for Cursor and Mouse have been renamed to Unicode/Attribute.
* In the Character dictionary dialog, you could specify ANSI characters by typing a slash and the ANSI value. Now, to specify a Unicode character, type a slash followed by x and then the number in hexadecimal (Unicode values are typically expressed as hexadecimal numbers).
* You can now define Braille hotkeys to send any Unicode character from the keyboard. Prior to Unicode support, upper ANSI chars did not work, making non-English languages that needed these characters difficult to work with.

Window-Eyes now supports Firefox 3. There are a few outstanding issues that require work on Mozilla's part. These are slated for the next major public update to Firefox 3.

iTunes 8 is now supported. GW Micro has worked with Apple to be the first screen reader to support iTunes.

Browse Mode provides two new hotkeys: Next/Prior Graphic. When these keys are pressed, the Browse Mode cursor will be moved to either the next or prior graphic in the Browse Mode buffer, based on the "Include Graphics with no description" verbosity option.

The Voice Rotor Parameter hotkeys now speak indexes. If all three voices are set the same, the announcement will say, "All voices rate XYZ." If the voices are not set the same, the announcement will say, "Screen rate XYZ, Keyboard rate XYZ, Mouse rate XYZ." The same goes for pitch, tone, and volume.

You can now press any key to stop a Read to End, not just the Escape key. Along with Left and Right arrow to rewind and fast forward through text, you can now press U and D to increase and decrease the synthesizer speech rate on the fly.

The Window-Eyes Error Reporting feature has been enhanced. The Error Report dialog has been changed to include Send Now, Send Later, and Delete Error buttons instead of OK and Cancel. Send Now means send the error report immediately. Send Later means that the error will not be sent when the dialog closes, and will also not be deleted so that it can be sent at a later time. Delete Error simply removes the error report file, and does not send anything. If you press escape to close the error report dialog, the report will not be deleted, much like if you had selected the Send Later button. If you try to send an error report without including any comments, a message box will display, asking you to confirm that you want to send the error without adding any additional information regarding your error. In addition to the dialog changes, submitting error reports should happen significantly faster.

The Window-Eyes Help, About dialog has been updated to sport a new Window-Eyes logo, as well as two new buttons: Find a Dealer (which launches the default browser to www.gwmicro.com/dealers), and Visit Website (which launches the default browser to www.gwmicro.com).

We have sped up the navigation of list views.

The Window-Eyes UI now uses true track bar controls for items like Screen, Keyboard, and Mouse rate, pitch, tone, and volume options. In addition, values now increase when you press the Up Arrow, and decrease when you press the Down Arrow. Finally, instead of using Min and Max as the threshold names, actual values are used.

Window-Eyes now supports reversed track bars, so that instead of values like 0 of 500 being the loudest in the volume control, 500 of 500 now indicates the maximum volume.

Window-Eyes now indicates when the keyboard language has changed by speaking the name of the input language.

Mouse Up/Down Speak now has two additional options: beginning of line to pointer, and pointer to end of line.

System tray access has been sped up exponentially. Now, instead of accessing the icons on the screen, Window-Eyes uses MSAA to retrieve system tray information, and does so almost instantaneously.

Window-Eyes now takes local user regional settings into account when using the Time/Date hotkey.

The progress bar hotkey now supports marquee progress bars. Marquee progress bars bounce back and forth rather then increase or decrease in value.

The Keyboard Voice option now includes two new parameters: On with Words (Interrupt) and On with Words and Numbers (Interrupt). Both of these options function just like the existing Words and Words and Numbers options, except key presses will interrupt speech instead of queuing until space bar is pressed.

The Set Active Profile dialog (accessed with the Set Active Profile menu option in the File menu of Window-Eyes) now offers an Open Profile Path button, which will open Windows Explorer in the current user profile directory. This is an easy way to access sets and scripts without having to remember to type %appdata%GW MicroWindow-EyesUsersDefault in the Run dialog.

The Window-Eyes Outlook Calendar dialog now pays attention to the Outlook first day of the week setting. In other words, if the first day of the week is set to Monday, the Window-Eyes Outlook Calendar dialog will respect that, and start both the work week and normal week on Monday.

The Focused verbosity options Window Type and Window Type First have been changed from two check boxes to three radio buttons: Don't Include Window Type, Include Window Type Before Window Data, and Include Window Type After Window Data.

Window-Eyes is now much more accurate when retrieving window names. This means set file associations will be much more reliable from now on. Existing set files may need to be updated to support this new change.

Window-Eyes now includes ECI Eloquence 6.1 (this is the dedicated version, not the SAPI version), and contains all available languages. It is listed as Eloquence in the Synthesizer Selection dialog. This version of Eloquence is tied to Window-Eyes, much like the DECtalk Access 32 (Window-Eyes) synthesizer (and can be run from a mobile copy of Window-Eyes, also like the DECtalk Access 32 (Window-Eyes) synthesizer). Note that switching to the dedicated Eloquence synthesizer from the SAPI version of Eloquence will most likely result in speech problems. We strongly recommend switching to another synthesizer temporarily (like the DECtalk Access 32 (Window-Eyes) and then switching to Eloquence. In fact, unless you're using the SAPI version of Eloquence 5 with some other application, we recommend removing it altogether to avoid potential conflicts.

We have modified the way keyboard layout settings are saved. Now, when you select a different keyboard layout, you will hear a message spoken (or displayed in Braille) every 10 seconds indicating the keyboard layout is being modified (as this can take a few minutes to update all set files). When the update has completed, you will receive a confirmation that the update is complete.
--Set File Updates

The Office 2003 and Firefox set files have been updated, so if you use those applications, you should re-install those set files. In addition, due to the fantastic Winamp scripts that are now available from Jeff Bishop, the factory default Winamp set files have been removed.
++Enhancements between Window-Eyes 7.0 and Window-Eyes 6.1

When changing keyboard languages, we now speak that the layout has changed. In addition, if you change the keyboard layout within that language, Window-Eyes will indicate both the layout name and the language name. Currently we only support the Polish 214 and Polish (Programmers) layouts within the Polish language. All others will just hear "layout changed." We can update an external .ini file if you have layouts you wish us to speak the name of instead of just "layout changed."

The key describer has been updated for Numbers Toggle and Keyboard Voice Rotor.

We resolved a problem where reading with the mouse would be broken after a read to end was performed.

When reading the Unicode attribute, speech is slowed down for the Unicode value on subsequent key presses. Now the speech is slowed for both the mouse and cursor hotkeys when reading Unicode values.

We fixed a problem where too many onClicks were being reported when using Firefox 3.

Pressing the Verbosity hotkey to open the Verbosity options to a specific element on a web page was inconsistent. This problem has been resolved.

Control backslash should now always bring up something. It should either bring up the control panel, the active Window-Eyes child window, or the window that parented itself to the control panel or a Window-Eyes child window.

Serial synthesizers now support COM1 to COM99.

We have resolved all known Read to End issues.

We have resolved all known Load Before Startup issues.

The Office 2007 set files have been updated.

Resolved several memory leaks.

We have been able to resolve many issues thanks to the Window-Eyes error reporting feature. Thanks to all who have taken the time to submit your errors which allows Window-Eyes to remain the most stable screen reader available.

We fixed a problem where message lists were not being announced in Lotus Notes.

Some fonts can simulate bold or italic without being truly bold or italic. Window-Eyes now recognizes this information, and reports the attribute correctly.

We fixed a problem where the mouse voice would use the global settings when global was set to verbosity only not voice only.

Window-Eyes 7.0 updates the Window-Eyes items in the Start menu. There is a Documentation folder that holds the Readme, Window-Eyes manual, Window-Eyes scripting manual, and the Window-Eyes text manual. The text manual option just brings up an Explorer window in the directory which holds the manual .txt files.

The Window-Eyes manual has now been officially renamed from wineyes.chm to Window-Eyes Manual.chm. The install will delete the old wineyes.chm and all references within Window-Eyes now reference the new filename.

We fixed a problem where speech with the TripleTalk USB was sluggish when using a Brailliant Braille display.

We resolved a BSOD that could occur when installing Window-Eyes video support under a VMWare virtual machine.

We fixed a problem where the check box status of items in Vista's "Turn Windows Features On or Off" dialog were not being reported.

If you defined a Window-Eyes hot key using the Alt key, and pressed that hot key in Internet Explorer, the menu bar would get activation. This problem has been resolved.

We fixed a problem where the Skype option treeview was not reading correctly.

We added support for more Delphi controls.

We fixed a problem where Window-Eyes would get stuck in a loop, saying, "Window-Eyes has installed video support. You must reboot the system for the change to take effect."

We fixed a problem where the cursor was not being detected in a command prompt.

We fixed a problem where speech would cease after opening a new memo in Lotus Notes.

We fixed a problem where hotkeys using the Windows key were not functioning correctly.

We fixed a problem where file modification dates were not being read when a list view was set to details view under Vista.

Window-Eyes was putting a space before apostrophes, causing potentially strange speech. Although some synthesizers also exhibit this behavior on their own, it has been resolved in Window-Eyes.

We fixed a problem where punctuation was not being reported after digits.

We fixed a problem where the default button was disabled in the Window-Eyes User Profiles Dialog.

We fixed a problem where set files were not updating correctly after installing or uninstalling a set file package.

We now default the SILENT.000 (renamed to k1000.000) set file to all of the Kurzweil 1000 self voicing applications. If K100 was set to voice on its own but Window-Eyes braille was being used we fixed the problem where braille was not tracking correctly. You must update to the latest factory Kurzweil sets for braille to be fixed.

The Window-Eyes control panel was not disabled on secure desktops, like the Windows login screen. In addition, in a Citrix environment, the Window-Eyes control panel was disabled when it should not have been. These problems have been resolved.

We fixed a problem where replacing existing character dictionary entries was not working correctly.

We fixed a problem where user names were not spoken in the Windows login selection combo box.

We fixed a problem where Window-Eyes could become catatonic after resuming from hibernation.

We fixed a problem where Window-Eyes would hang when working with empty dictionary files.

We fixed a problem where Window-Eyes was reading previous control information when tabbing to a new control in the TeamTalk application.

If you used Control-Tab to move through tabs controls, and the tab control had focus, nothing would be spoken. This problem has been resolved.

We fixed a problem where the shortcut was not being read for the combo box field names in the Notepad Save As dialog.

We fixed a problem where unselecting items in a list view would not always result in Window-Eyes speaking, "unselected."

We fixed a problem where check boxes in Skype were always reporting unchecked.

We fixed a problem where Window-Eyes would sometimes go silent when typing in the password edit box as the login screen.

We fixed a problem where edit boxes and rich edit boxes would ignore the Window Type First verbosity setting.

We fixed a problem where the display settings track bar in Vista was double speaking.

We fixed a problem where the Apply button in the Select Synthesizer dialog often did nothing more than saving the change to the disk. Now Apply saves the settings and makes the synthesizer refresh to enact the changes (just like OK, except that the dialog stays up).

We fixed a problem where Window-Eyes would stop working when Spyware Doctor was running under Windows Vista.

If the Keyboard voice was set to Words or Word with Numbers, and the Special Key Escape was turned off, escape would still be spoken. This has been resolved.

We fixed a problem where disabling the Vista User Account Control feature would keep Window-Eyes from launching.

We fixed a problem where numbers separated by colons were not following the number processing correctly.

We fixed a problem where focusing the clock in the system tray in Vista would result in Window-Eyes speaking, "clock" multiple times.

We fixed an obscure problem that involved an HP F4100 scanner/printer combo, and Kurzweil 1000, wherein Window-Eyes was causing the scanning dialog not to be displayed

We fixed a problem where accessing the Contacts list in Vista would result in a lockup when the Contacts template was being used.

We fixed a problem where check boxes in the network properties dialog under Vista were double speaking.

We fixed a problem where IP edit boxes in Vista (used for entering dot separated IP network addresses) were not reading correctly.

We fixed a problem in the Key Label dictionary where entries were not added or removed correctly, often resulting in a lock up.

We fixed a problem where Window-Eyes was losing track of the active window when the Alt-Tab dialog gained activation.

We fixed a problem where the GWSpeak API DLL was not working under Vista.

Window-Eyes now supports keyboard languages which require several key strokes to compose a single key, as in Asian languages.

--Internet/Browse Mode/Email

We fixed a problem where Window-Eyes would not navigate correctly to some same page links.

We fixed a problem where the Browse Mode status messages could get confused when working with multiple browse windows.

We fixed a problem where the Browse Mode cursor would not return to the correct position when going back to a previous page.

We fixed a problem where Browse Mode would not turn on in eClipseReader, and other applications with similar embedded IE windows.

We fixed a problem where typing in edit boxes would result in a "ding" sound for each keypress, even though the text was being typed.

Opening some PDF files that contain a large number of links could take a very long time to load in full document mode. This problem has been resolved.

We fixed a problem where having the Google Desktop installed under Windows Vista would cause Internet Explorer not to launch.

We fixed a problem where text in Browse Mode could get corrupted if the Screen Miscellaneous Punctuation was enabled.

We fixed a problem where Window-Eyes could hang when moving between form controls.

We fixed a problem where random text could get inserted into the Browse Mode buffer.

We fixed a problem where Browse Mode would not load correctly if Window-Eyes was set to launch automatically at the login screen.

We fixed a problem where activating a link from the Insert-Tab dialog would not work correctly.

We fixed a problem where Browse Mode would turn on (partially) in the Windows XP System Restore utility.

Read only controls were not being reported in neither Internet Explorer nor Firefox. That problem has been resolved.

When switching search engines in Firefox 3, the selected search engine was not spoken. This problem has been resolved.

We fixed a problem where combo boxes were not spoken outside of Browse Mode in Firefox 3.

We fixed a problem of the save password prompt not being spoken in Firefox 3.

Going in and out of bookmark menus in Firefox 3 could cause the menu to stop reading. This problem has been resolved.

The Domain/URL edit box in the Placemarker dialog was always blank in Firefox. This problem has been resolved.

Window-Eyes now provides support for Internet Explorer 8 Beta 2.

We fixed a problem where the "invalid" property of a control was only being spoken in Browse Mode.

Creating new messages in Thunderbird would cause Browse Mode to come on. This problem has been resolved.

We fixed a problem where going into the menus in Thunderbird, and then going back to a message window would cause reading problems.

We fixed a problem where radio buttons in the Thunderbird Account Wizard were not speaking.

We fixed a problem where consecutive find commands in Outlook Express were not reading.

If you deleted all the messages in the Outlook Express inbox, and then pressed the Up or Down Arrow keys, you would continue to hear information regarding the last message that was deleted. This problem has been resolved.

We fixed a problem where arrowing through messages in Windows Mail was sluggish.

We fixed a problem where you couldn't tab between certain buttons in Windows Mail.

We fixed a problem where links were not being identified correctly in HTML messages in Outlook Express.

We fixed a problem where closing a browse window after launching a link in Outlook Express would result in the inability to navigate the email message until the screen was redrawn.
--Braille

Braille is now fully Unicode, including translation tables. If a character is not represented in the Unicode table, it will be converted to a ? (question mark) and then looked up in the table.

If the Braille Unicode range (2800h through 28ffh) is used, those dot patterns are displayed.

If you selected grade 2, we now force you to the 6 dot table. Previously you could select grade 2 and the 8 dot tables. Not only do we force the 6 dot tables for grade 2, we also uncheck and disable the 8 dot checkbox in the Braille options dialog if grade 2 is checked.
We fixed a problem where graphics were not showing up in Braille.

We fixed a problem where cursoring position would be incorrect with the "show extra spacing" Braille option enabled.

Braille tables have been updated for smart single and double quotes to match standard single and double quotes.

The Eurobraille driver has been updated.

All Handy Tech braille displays have been updated to match the correct key names as well as updated the default braille hotkey actions to better suite each display. In addition, Handy Tech updated most of their Braille default keys and key names. So the braille.ini files has been updated which means you'll be asked if you want the enhanced Braille support when installing Window-Eyes 7.0.

We have updated the Duxbury grade 2 translator to support Unicode and now use the latest US English and British English tables.

Unified English Braille (UEB) is now supported for the English Grade 2 translation table. There is a checkbox in the Translation table dialog that controls this setting. If enabled, the UEB tables will be used. In addition, the French 8 dot Braille translation table has been converted to the French Unified Braille translation table.

The Braille translation dialog has been re-designed. You are no longer limited to two user defined tables. You can have an unlimited number. The dialog now allows you to create and delete user tables. To edit or view a table there is a new button to launch the table in Notepad. The user tables now live in the active profile dir instead of the program dir. The factory tables still remain in the program dir.

We fixed a problem where Braille scrolling options were not being honored.

We have added support for the Eurobraille displays, the KGS BrailleMemo, and have updated support for the Pappenmeier Braillex Trio/El displays, and Alva displays.
Window-Eyes now supports the Lillie Braille display from Italy, and the Alva BC640.

We fixed a problem where Braille was not working in the Office 2007 options dialog.

We fixed a problem where the Outlook profile name combo box was not displaying in Braille.

We fixed a problem where Braille was not updating while tabbing through links.

We fixed a problem where some Braille settings were not being saved. In addition we have modified the way Braille settings are saved when you select the "Apply Braille settings to all programs" option in the Braille menu. Now, when you apply settings, you will hear a message spoken (or displayed in Braille) every 10 seconds indicating the settings are being applied to all programs (as this can take a few minutes). When the update has completed, you will receive a confirmation that the update is complete.

We fixed a problem where Braille was not working in the Window-Eyes Outlook calendar appointments list interface

We fixed a problem where Braille could cause speech to speak incorrectly when working with tables in Microsoft Word.

The message "no selected item" that is spoken when a list view contains no selected item is now displayed in Braille.

We fixed a Braille scrolling problem in Word and Outlook 2007 where text that didn't fit on the display could not be scrolled.

If you rename a file by pressing F2 on the filename in Windows Explorer, the filename would either not be displayed in Braille, or would be displayed twice. This problem has been resolved.

We fixed a problem where Window-Eyes was looking at the underline attribute to determine if the selected attribute should be displayed, instead of looking at the highlight attribute.

We fixed a problem where speech graphic labels were being used instead of Braille graphic labels in Outlook 2003.

We fixed a problem where menu items for system tray icons were not being displayed in Braille.

If you defined a Braille key to insert a Down Arrow, and then another Braille key to insert an Enter, neither would work. This problem has been resolved.

We fixed a problem where the edit box control type would not clear from the Braille display when updating control contents.

We fixed a problem where using the Enter key on the Handy Tech Evolution 64 would cause Window-Eyes to hang.

Braille hotkeys that used the Windows key were not functioning. This problem has been resolved.

We fixed a problem where Braille was not showing up in NoteTab Pro.

We fixed a problem where strange characters would be displayed on the Handy Tech Braille Star 80 when using a tab instead of a space to separate words.

We fixed a problem where Braille was not working in the Word 2007 options dialog.
--Microsoft Office

We fixed a problem where performing a Read to End in some complicated Microsoft Word tables could cause lockups.

We fixed a problem where appointments were not saving in the correct calendar if the Window-Eyes Outlook Calendar dialog was opened for some calendar other than the default.

We fixed a problem where message status indication would stop after arrowing through the Outlook 2003 message list for a while.

We fixed a problem where the date in the Window-Eyes Outlook Calendar dialog would revert back to 12/30/1899.

We fixed a problem where you weren't able to spell context menu items in the Outlook 2007 spell check dialog.

We fixed a problem where cursor routing keys were not working in Word 2007.

We fixed a problem where the reminder field in Outlook 2007 would not read when using the Up and Down Arrow keys.

We fixed a problem where comments were not being listed in the Insert-Tab dialog in Microsoft Word.

The browse options dialog in Word 2007, accessed with Control-Alt-Home, was not being read. This problem as been resolved.

We fixed a problem where Window-Eyes was off a few pixels when routing the mouse to the cursor in Word 2007.

We fixed a problem where the quote character wasn't announced if smart quotes were enabled.

The Day and Date columns are now removed from the Window-Eyes Outlook Calendar dialog when in day view only.

We fixed a problem where Window-Eyes would say "list box" after every list box item for list boxes in Office 2007 applications.

We fixed a problem where stopping a read to end in Outlook 2007 would cause Window-Eyes to go silent until you alt-tabbed away and then back.

We fixed a problem where Excel could lock up if it opened with the recovery window active.

We fixed a problem where Read to End would not work correctly in Word 2007 when the document was in compatibility mode.

We fixed a problem where graphic labels were not speaking (even though they existed) in Eudora 7 and Outlook Express.

We fixed a problem where the Word 2007 spell check read-only edit box would not read when arrowing around the contents.

We've sped up navigation in the Window-Eyes Outlook Calendar dialog when using shared calendars or calendars over a network connection.

We fixed a problem where the element properties dialog would be empty if displayed on a slide with no objects selected.

We fixed a problem where monitor cells were not working in Excel 2007.

We fixed a problem where Window-Eyes would not correctly report the vertical position in Word 2007.

We fixed a problem where speech was splitting on apostrophe characters in Word 2007.

We fixed a problem where reading the status line in Outlook 2007 could cause a loss of speech.

We fixed a problem where the page navigation dialog in Excel 2007 was not listing hyperlinks.

We fixed a problem where the Window-Eyes Outlook Calendar dialog would not close when Outlook 2007 was closed.

We fixed a problem where some spreadsheets could cause Window-Eyes to become unresponsive using Excel 2007.

We fixed a problem where password edit boxes were not showing up in Excel. This has been fixed in Office XP and above. Office 2000 does not provide the necessary information to work around this problem.