Starting with Dragon NaturallySpeaking for Teens and Dragon NaturallySpeaking version 3.5, support for dictation with voice correction (Select 'n' Say) has been added to a number of additional applications which use standard Windows edit controls.  A complete description of this feature can be found at Select 'n' Say Editing in Other Applications.

Although Dragon Systems has only enabled Select 'n' Say editing for a small number of applications, the code will actually support many more applications, it enabled.  This topic describes how to enable Select 'n; Say editing for additional applications.

Warnings and Caveats

This technique only works for applications which use standard Windows edit controls and/or rich edit controls.  An application which does not use standard Windows edit and/or rich edit controls can not be enabled using this technique.  

Using this technique with an application which does not use standard Windows edit and/or rich edit controls may result in that application, Dragon NaturallySpeaking or Windows itself becoming unstable.  This instability may also result when this technique is applied to some applications which do use standard Windows edit and/or rich edit controls.

If you follow the instructions described in this topic, you must realize that you are experimenting.  The technique may not work and it may make your system temporarily unstable.  If your system becomes unstable, reverse the instructions (by removing the registry entries you added).  This should restore your system (although a reboot may be necessary).

Do not use this technique if you are uncomfortable modifying your Windows registry or if you are unwilling to accept the possibility that this technique may not work with your target application.

Technical Overview

The code to support Select 'n;' Editing in edit controls was first added to version 3.0 of Dragon NaturallySpeaking.  However, this feature is inactive unless explicitly enabled for a specific application.  In Dragon NaturallySpeaking for Teens and in Dragon NaturallySpeaking version 3.5 this feature was selectively enabled from a small number of applications (see the complete list in Select 'n' Say Editing in Other Applications).

When enabled, all the edit controls and rich edit controls in the specifically targeted application become voice-aware.  Technically this means that Dragon NaturallySpeaking is able to (1) read the text and selection from those edit controls and (2) to change the selection and selected text in those edit controls.  Practically this means that you will be able to dictate into and use Select 'n' Say error correction in those edit controls just like you can with Dragon's own native editor.

(Note: the voice support is not quite as perfect as with Dragon NaturallySpeaking itself.  For example, if you dictate a long paragraph and then go back and manually type a character at the start and then at the end, Dragon NaturallySpeaking will assume that you modified the entire edit control and throw away saved speech.  However, in normal use, even when you combine dictation and some typing, you should be able to detect any difference in the behavior of Select 'n' Say support in any edit control as compared to Dragon NaturallySpeaking's native editor.)

To enable this feature you must add an entry to the Dragon NaturallySpeaking section of the Windows registry for the specific target application.  You can enable support for a specific version of an application or for all versions of that application (although the latter capability was not supported until version 3.5).

Dragon NaturallySpeaking looks in the registry for the appropriate entry when the target application starts running.  Or, if the target application was already running before Dragon NaturallySpeaking was started, NatSpeak looks in the registry for the appropriate entry as soon as the target application becomes active.  (Note: this means that changing the registry entry after both Dragon NaturallySpeaking and the target application are running will have no effect until Dragon NaturallySpeaking is restarted.)

The Register Entries

This section assumes that you are somewhat familiar with how Dragon NaturallySpeaking uses the Windows registry, and how registry entries are documented on this web site.  In necessary, you can refer to the topic Layout of the NatSpeak Registry Section for a refresher.

As mentioned earlier, there are two ways of enabling an application for Select 'n' Say editing.

Method 1

Method 1 enables every version of a target application for Select 'n' Say editing.  It is a little easier to use method 1 because you do not have to worry about getting the version number correct.  However, method 1 does not work with NatSpeak version 3.0, it only works in version 3.5 or higher.

Assume that you are using Dragon NaturallySpeaking Professional 3.5 and you want to enable the Eudora Light e-mail program for Select 'n' Say editing.  With method 1, you would create the following registry entry:

REGEDIT4
[HKEY_LOCAL_MACHINE\SOFTWARE\Dragon Systems\NaturallySpeaking\Professional 3.0\System\Enable Module Names]
"EUDORA"="{dd100104-6205-11cf-ae61-0000e8a28647}"

The registry key "Enable Module Names" lists all the names of all the modules which are enabled for Select 'n' Say editing.  As shipped (in version 3.5), this registry key already lists "NATSPEAK", "WORDPAD" and "NOTEPAD" to enable Select 'n' Say editing in those applications.

(Note: When you enable Select 'n' Say editing for an application, it is enabled for every edit control in that application including the main window and any dialog boxes.  NatSpeak is explicitly listed under "Enable Module Names" to make sure that Select 'n' Say editing is enabled for all of its dialog boxes.)

The value ("{dd100104-6205-11cf-ae61-0000e8a28647}") associated with the module name must be exactly as shown above.  If this number if wrong then Select 'n' Say editing will not be enabled.  The good new, however, is that this number is the same for all target applications and all versions of Dragon NaturallySpeaking.

As with any other registry modifications, you need to modify the registry key for the correct version of Dragon NaturallySpeaking.  If, for example, you have the Standard edition, the registry key you would modify is:

REGEDIT4
[HKEY_LOCAL_MACHINE\SOFTWARE\Dragon Systems\NaturallySpeaking\Personal 3.0\System\Enable Module Names]
"EUDORA"="{dd100104-6205-11cf-ae61-0000e8a28647}"

Method 2

Method 2 enables one specific version of a target application for Select 'n' Say editing.  It works in version 3.0 of Dragon NaturallySpeaking as well as all later versions.  You can safely use method 1 for some applications and method 2 for others.

Assume that you are using Dragon NaturallySpeaking Professional 3.5 and you want to enable the Eudora Light 3.0.6 e-mail program for Select 'n' Say editing.  With method 2, you would create the following registry entry:

REGEDIT4
[HKEY_LOCAL_MACHINE\SOFTWARE\Dragon Systems\NaturallySpeaking\Professional 3.0\Applications\EUDORA 3.0\Settings]
"App Support GUID"="{dd100104-6205-11cf-ae61-0000e8a28647}"

Notice that the key you modify is the name of the target application plus the version number.  If you look at the registry in a shipping of Dragon NaturallySpeaking, you will see lots of applications listed in the "Applications" section of the registry, although most of them will not have a value associated with the "App Support GUID".

If you have version 3.5 then you can se an example of an already enabled application (Microsoft Outlook) by looking at the key "...\Applications\OUTLOOK 8.0\...".

Testing an Application

This feature does not work for all applications.  The target application must use real Windows edit controls of rich edit controls.  And the Windows application must not be written in a way that interferes with Dragon NaturallySpeaking directly accessing its edit controls.

There is a good way to at least see if your target application has supported edit controls.  To do this you need to have Visual C++ installed.  (If you do not have Visual C++ installed, you can still try to enable Select 'n' Say editing for an application and see if it works.)

(1) Start your application.
(2) Start the Spy++ program (from the Microsoft Visual C++ section of the Start Menu).
(3) In Spy++, select Find Window from the Spy menu (or press ctrl-f).
(4) Then click "Hide Spy++" check box and drag the finder tool over your target application.

As you drag the Spy++ finder tool around, the Spy++ dialog box will display the Class of every window you pass over.  You are looking for a Class name of "EDIT", "RICHEDIT", "RICHEDIT2A" or "RICHEDIT2W" (the case does not matter).  If the window of your target application into which you normally type is one of these classes than you can (probably) enable this application for Select 'n' Say editing.  If not then you can definitely not enable this application.

(5) Once you finish dragging the finder tool, you can cancel the Find Window dialog and close Spy++

Detailed Instructions - Method 1

(1) First you need to figure out the module name of your target application.  There are a couple of different ways of doing this depending on what software you have installed on your system.

(1a) If you have Visual C++ then you can use Spy++ to list the module names of all the currently running applications.  Simply start your application, then start Spy++ and select Processes from the Spy menu.  You will get a list of the module name of every running application and you can pick yours out from the list (usually).

(1b) Or you can use the Windows explorer to examine the module name directly on disk.  Open the Windows explorer and go the directory where your target application is installed.  Find your target application in the list of files in that directory (it will have an extension of .exe and a file type of "Application").  The filename without the extension will (usually) be the module name.

(1c) The most reliable way to determine a module name is to use Dragon NaturallySpeaking itself.  You will need the Professional Edition to perform this trick since it uses the New Command Wizard dialog.  This technique is documented more completely below (under the detailed instructions for method 2).

(2) Once you have figured out the module name, you need to add the registry entry described above.  You can do this in two ways.

(2a) You can run the Regedit program and manually add the entries.  To run Regedit, click the Start Menu, then Run, then type "Regedit".  When the Regedit Window appears, use the mouse to find the section:
My Computer
HKEY_LOCAL_MACHINE
SOFTWARE
Dragon Systems
NaturallySpeaking
Professional 3.0 (or Personal 3.0 or Standard 3.0)
System
Enable Module Names
Then Select Edit / New / String Value from the menu.  The name of the new entry should be your module name and the value should be "{dd100104-6205-11cf-ae61-0000e8a28647}".

(2b) Another way to add entries to the registry is from a .reg file.  Using Notepad, create a file with the following lines:

REGEDIT4
[HKEY_LOCAL_MACHINE\SOFTWARE\Dragon Systems\NaturallySpeaking\Professional 3.0\System\Enable Module Names]
"EUDORA"="{dd100104-6205-11cf-ae61-0000e8a28647}"

The string "EUDORA" should be replaced with the module name of your application.  Also, your web browser may word-wrap the text.  There should be three lines in your file, the second line start with an open bracket and end with a close bracket.

Save the file as c:\temp\foo.reg and then run the following command from the Run dialog (from the Start Menu):

regedit c:\temp\foo.reg

Once you have finished, you can test to see if it worked as described below.

Detailed Instructions - Method 2

For method 2, you need both the module name and the module version number.  The best way to figure this out is to use NatSpeak and regedit together.  Note: this only works using the Professional Edition.

(1) Start your target application.
(2) Start Dragon NaturallySpeaking.
(3) In NatSpeak, select New Command Wizard from the Tools menu.
(4) In Step 1 of the wizard, select "Application-specific" and click Next to move to step 2.
(5) On Step 2, drag the cross hairs over your target application and release the mouse.  This should cause the module name of your application to be highlighted in the list of applications.

At this point you have the module name but not the module version number.  To get the module version number use this trick:

(6) Click "Change Descriptive Name" and type in "**TESTING**".
(7) Now cancel the New Command Wizard.
(8) Start Regedit from the Run dialog (from the Start Menu).
(9) When Regedit is running, select Find from the Edit menu and search for the string "**TESTING**.

Regedit will search for a little bit so be patient.  Assuming that everything works, Regedit will should you the value "Display Name" = "**TESTING**" in the right hand pane.  In the left hand pane, the key "Settings" will be highlighted.  The line above Settings is the target module name and version number.

Not only have you found the module name and version number but you are already in the correct place in the registry to enable Select 'n' Say editing for your target application.  At this point:

(10) Select Edit / New / String Value.
(11) Type in a name of "App Support GUID".
(12) Press enter and type in a value of "{dd100104-6205-11cf-ae61-0000e8a28647}".
(13) Then change the value f Display Name to be something more reasonable than **TESTING**.  If you do not change (or delete) the Display Name then you may accidentally find this application if you try to enable Select 'n' Say editing for another application.

Did it Work?

There is only one way to see if you have successfully enabled Select 'n; Say editing for your target application, and that is to test it.  Follow these steps.

(1) Close both your target application and Dragon NaturallySpeaking.  
(2) Start up NatSpeak
(3) Start your target application.
(4) Make sure that NaturalText is turned off by clicking on the blue speech balloon in the tray.  When NaturalText is turned off, the speech balloon will be gray and show "zzz" inside.
(5) Now turn on the microphone
(6) Switch to your target application
(7) Start dictating.

If you get no recognition, then Select 'n' Say is not enabled for the place where you are dictating.  (The reason you turned off NaturalText was to make sure that global dictation was not active since NaturalText would recognize your speech even if your application was not enabled for Select 'n' Say.)

If your text appears, and if you can use a command like "Select <text>", then you were successful.

Troubleshooting

Important: Neither the author nor Dragon Systems takes any responsibility for making Select 'n;' Say work in any application other than those listed on the Dragon NaturallySpeaking box or in the documentation.  These instructions were provides as a public service to people who want to experiment.  

Do not contact Dragon Technical Support for help if you can not enable Select 'n' Say editing for some arbitrary application, or if Select 'n' Say does not work in any application other than those listed on the box or documentation.

Also do not contact me (the author) for help.  To discourage support calls, I often take a long time to answer e-mail sent directly to me as a result of something you saw or tried based on this web site.  It is not a personal slight.  I just do not have the time to answer support e-mails all day long.

If your application, Dragon NaturallySpeaking or Windows crashes after enabling Select 'n' Say support then reboot your computer and remove the registry entries you added using regedit before starting Dragon NaturallySpeaking again.

If you (think you) did everything right and Select 'n' Say editing does not work then it could be any of the following things:

(1) You got the module name and/or the version number wrong.
(2) You mistyped the registry entry or added it to the wrong place in the registry.
(3) Your target application does not use real Windows edit controls or rich edit controls or uses them in a way incompatible with this feature.

Problems (1) and (2) you may be able to diagnose by inspection.  You can never really tell whether the problem is your application unless you rule out the other problems.

Good luck.

By the way, Eudora Light and Eudora Pro can be enabled for Select 'n' Editing.  Lotus Notes can not be speech enabled in this way.
Web page hosting graciously provided by
Synapse, a provider of speech recognition solutions.