SECTION THIRTEEN HYPERACTIVE WINDOWS 13.1: INTRODUCTION In section 7, we talked about the standard windows zero through nine. These windows could be set up as Neutral, Silent, Speak or Float. We also talked about the extended windows ten through forty-nine. These windows do not do as much as the standard windows but are still very powerful. All these windows offer much flexibility but for certain programs, you need the power of hyperactive windows. As we've mentioned, not all software programs use DOS screen service to display their information on your PC's screen. This is not necessarily a bad thing, however. After all, you wouldn't want your word processor to reread your entire business letter every time you typed in a character or used a cursor key to change lines. Certainly you wouldn't want your spreadsheet repeating every cell when all you've done is add or modify the data in a single cell. As you can see, when it comes to certain kinds of software, often silence is golden. However, even though you wouldn't want to hear everything on your screen repeated ad infinitum, occasionally there is going to be some critical information that you'd like to hear read to you as soon as it pops up. This is where Vocal-Eyes' "Hyperactive" windows come into play. 13.2: WINDOWS A-J In addition to the standard ten windows and forty extended windows, Vocal-Eyes offers an additional ten windows A-J. These ten windows are designated as hyperactive although they can each be enabled or disabled independent of all other windows. Whenever prompted for a hyperactive window, simply supply a letter from "A" through "J." When a window is set to "Hyperactive," Vocal-Eyes checks and rechecks that window for changes. If it detects your specified change, the hyperactive window will trigger. Once the window triggers, you can specify up to three things Vocal-Eyes should do. This feature can best be clarified with a few examples. Let's say your working in a spreadsheet. Your particular spreadsheet has a small area in the upper right-hand corner where your program's present work status is displayed. It says either "READY," "RECALCULATING," or "ERROR," depending on what's happening at any one moment. Lets say you'd like to know when your spreadsheet is busy with a recalculation so you won't attempt to enter new data while it's in progress. And of course you'd want to know about any error messages. You could set up a hyperactive window to this area and monitor for any change. Once a change is detected, you can instruct Vocal-Eyes what to do. Here's another example. Lets say you are using a program which, at certain times, displays the word "EDIT" in a certain area of the screen. When this is displayed, you want Vocal-Eyes to do several tasks automatically. With a hyperactive window, you can instruct Vocal-Eyes to monitor for the word "EDIT" either in a specific location or anywhere within a certain window. Once Vocal-Eyes notices the appearance of the word, it could then be instructed to do your bidding. This could be to read something or even to load a completely new .SET file into memory. 13.3: WHAT HYPERACTIVE WINDOWS CAN LOOK FOR There are actually fifteen different ways to configure a hyperactive window to trigger. By trigger, we mean that a certain condition as been met. Once the condition has been met, the hyperactive window has triggered, you can tell Vocal-Eyes what to do. Should it read something or switch to another window or load a new .SET file or all three? A hyperactive window, like the other fifty windows, can contain an area the size of a single character to the full screen. Your first step is to set up the coordinates of the hyperactive window. Once you have the area confined, you must tell Vocal-Eyes what to look for. Lets discuss each of the fifteen ways in detail. Any change: If any change within the specified hyperactive window's coordinates occurs, the window will be triggered. It does not matter if there was a text change or a color change. "Anything" can be taken literally. Any text change: This gets a little more specific than the setting described above. This option will only trigger if a text change occurs in the hyperactive window. Color changes will not be noticed. If you don't care about color changes but you do care if characters are changed within the hyperactive window, this would be a good choice. Any Attribute change: You probably already guessed what this option does. This one does not care if there is a text change in the hyperactive window but it does care if there is a color change. Exact match: This option will take a snap-shot of everything within the current hyperactive window's coordinates. It will remember every single detail. Where each character is placed, the case of each character and even the color of each character. Vocal-Eyes than takes this information and stores it for later comparison. Now, instead of any type of change in the hyperactive window, Vocal-Eyes is looking for a very specific occurrence. This window will not trigger until it is restored to the original state it was when Vocal-Eyes took a snap-shot of what was already there. Every character must be in the same position, the case of each character must match, and the color of each position must be the same as before. Then and only then, will Vocal-Eyes trigger the hyperactive window. For example, if you want the window to trigger when line five columns ten through twenty contain the characters "Spreadsheet" and all the characters are blue on red, you could set up a hyperactive window with coordinates top five, bottom five, left ten, and right twenty. Vocal-Eyes will take a snap-shot of the current contents which would be the word "spreadsheet" being displayed blue on red. Once Vocal-Eyes sees this occurrence again, the window will trigger. Remember, you can match a single character or the entire screen. Exact text match: This works like the exact match above except Vocal-Eyes is only concerned with the text on the screen. It does not care about the color. Like before, Vocal-Eyes will take a snap-shot of the hyperactive window but only of the text, not the color. Vocal-Eyes will not trigger until the screen matches character for character what it was when the original snap-shot was taken. The color of each character is not considered. Exact Attribute match: This is just the opposite of the Exact text match above. Vocal-Eyes takes a snap-shot of the video attributes of the hyperactive window. It does not care about the text on the screen. Vocal-Eyes will not trigger until the screen colors within the hyperactive window are exactly as they were when the original snap-shot was taken. Different match: This option will preform the opposite of the exact match option, described earlier. That is, while exact match will trigger any time the contents of the hyperactive window exactly match the snap-shot, different match will trigger any time the contents of the hyperactive window are different in any way from the snap-shot. Any change-- text, color, what have you-- within the coordinates of the hyperactive window is enough to trigger the Vocal-Eyes command you have specified. For example, if you wanted the window to trigger if a particular text and color was not currently displayed on the screen, this would be a good choice for different match. Different text match: Just as different match works opposite exact match, different text match works precisely opposite exact text match. At any time the text in the hyperactive window is different in any way from the text of the snap- shot, the Vocal-Eyes command(s) you have specified will be triggered. Different attribute match: Following suit, different attribute match works opposite exact attribute match. Instead of triggering on a specified set of colors in the snapshot, the hyperactive window will be triggered any time there is a color change in the hyperactive window from that of the snap-shot. Contains attribute: This option allows you to specify a particular color. Vocal-Eyes remembers this color and will trigger if the specified color is present anywhere in the hyperactive window. It does not matter where in the window the color is located or how much of the color is there. Its presence there will cause this to trigger. Does not contain attribute: This works exactly opposite of the contains attribute option above. Once again, you specify a particular color and instruct Vocal-Eyes to trigger if the color is not in the current hyperactive window's coordinates. Contains string: This option allows you to specify a string of up to five characters in length. If the specified string is contained anywhere in the hyperactive window's coordinates, the window will trigger. The string can be in upper or lower case letters. When Vocal-Eyes looks for the specified string, it ignores the case of all letters. The string can be located anywhere within the hyperactive window. It could be in the middle of another word. If Vocal-Eyes sees the same pattern, the window will trigger. This would be a good choice if you want something to happen if a certain word appears in a certain area but it is not always in the same location. Let Vocal-Eyes scan an area for the string. Does not contain string: This works exactly opposite of the contains-string option above. Again, you set up a string of up to five characters in length. This time however, Vocal-Eyes will only trigger if the specified string is not located in the current hyperactive window's coordinates. Contains cursor: You might use this option if there is no text or attribute change on the screen, but you would like to have something happen when the cursor enters a particular region of the screen. Vocal-Eyes will see the cursor enter the confines of the window and will act accordingly. Does not contain cursor: This is the opposite of the above option. Vocal-Eyes will watch to see if the cursor leaves the window and act accordingly. 13.4: HYPERACTIVE WINDOW COMMANDS Now that you know of the ways a hyperactive window can be triggered, it is time to see what it can be triggered to do. Once a window has been triggered, Vocal-Eyes will act upon your requests. You can specify any three of eight optional Vocal-Eyes commands to execute when a hyperactive window triggers. Lets discuss each of the eight options in detail. Speak window: This tells Vocal-Eyes to speak the specified window. You can specify any of the standard windows zero to nine, extended windows ten through forty-nine, or any of the 10 hyperactive window A-J. Speak string: You can specify a string of up to 20 characters in length to be spoken. For example, maybe you want to say "data base active" when a hyperactive window determines your specified criteria for determining whether the data base is loaded. Speak box: This informs Vocal-Eyes to look for the current box and speak it. This would be as if you had pressed the read box hot key only, of course, Vocal-Eyes would do this automatically based on the hyperactive window triggering. Speak light bar: Upon seeing this command, Vocal-Eyes will automatically speak the current light bar in the active, standard window. This would be as if you had pressed the read light bar hot key. Activate window: This will make the specified window the currently selected window. This would be just like hitting F3 in review mode or hitting the select window hot key. Remember, by switching to a different window, you not only constrain the reading to the new window's coordinates but you can also turn the light bar mode to on, off, or auto along with setting the new light bar color. Load disk SET: This feature gives Vocal-Eyes a tremendous amount of power. Now, based on a particular criteria, you can instruct Vocal-Eyes to load a completely different .SET file. You specify the name of the .SET file and Vocal-Eyes will load the new .SET automatically. At this point, you can have a completely new voice environment. You could, for example, have 10 more hyperactive windows doing completely different functions. The possibilities are endless. The load process used here is exactly as if you loaded the file manually from the files menu and specified the file name only. If the specified .SET file is loaded in one of the RAM locations, Vocal-Eye will load it from there. You are limited to eight characters for the file name. Therefore, you should not specify a path or the .SET extension. Load RAM SET: This works just like the load disk SET only instead of specifying a file name, you specify the RAM number which contains the desired .SET file. You will remember, you can use the load disk set option above and still have the .SET loaded from a RAM location. This option is simply for compatibility with older versions of Vocal-Eyes. It is suggested you use the load disk set option instead of the load RAM set option. Beep: This instructs Vocal-Eyes to issue a simple beep tone. 13.5: SETTING UP THE HYPERACTIVE WINDOWS You know what a hyperactive window can trigger on and what it can do once it has triggered. Lets now go through the details of how you actually set up a hyperactive window. In order to set up the hyperactive windows, you must be in review mode. The following discussion will assume you are already in review mode. SHIFT-F3: In order to change a particular hyperactive window's settings, you must first select that window. Remember, to select a standard window you press F3 in review mode and type a number from zero to nine or to select an extended window you press Control-F3 and a number from ten to forty-nine. To select a hyperactive window, press SHIFT-F3 instead. You will now be asked to select the hyperactive window. Simply type the desired window A through J. Once you press the letter, Vocal-Eyes will verify by saying "Window x" where "x" is the window of your choice. Like the extended windows, the only reason to have a hyperactive window selected is so the following commands know which hyperactive window to work with. Other than for this reason, it makes no difference which hyperactive window you currently have selected. Whenever you load a new .SET file from disk, hyperactive window A will always be the default window. As for the standard windows (zero through nine), whichever window you had active when the .SET file was saved will become active when the .SET file is loaded. Notice how the shift key was used to enhance the standard F3 command. F3 by itself relates to the standard windows zero through nine but a SHIFT-F3 relates to the hyperactive windows A-J. You will notice the shift key has been used to enhance several of the other standard window commands as well. SHIFT-F4: Pressing F4 alone will prompt you for the coordinates of the currently selected standard window zero through nine. However, pressing SHIFT- F4 will prompt you for the four coordinates of the currently selected hyperactive window A through J. You fill in the data exactly as you would using the F4 command. SHIFT-F5: Pressing F5 alone, will set the top left of the currently selected window 0-9 to the review cursor position. However, if you press SHIFT-F5, Vocal-Eyes will set the top left of the currently selected hyperactive window to the review cursor position. Vocal-Eyes will respond "top left." SHIFT-F6: Pressing F6 alone will set the bottom right of the currently selected window zero through nine to the review cursor position. However, if you press SHIFT-F6, Vocal-Eyes will set the bottom right of the currently selected hyperactive window to the review cursor position. Vocal-Eyes will respond "bottom right." SHIFT-F7: SHIFT-F7 pops up a box which deals with the currently selected hyperactive window. This is where you set up the details of a hyperactive window. There are six different settings which can be made with this option. You can use the up and down arrows to move to the next or previous option. Pressing the space bar will rotor to the next selection and the backspace will rotor to the previous selection for the current option. At any point, you can press the ESCAPE key to exit the options. All the new settings will be saved. Pressing ENTER from the last option will also save and exit the options. Lets discuss each option in detail. Status: Off/Hyperactive Although Vocal-Eyes offers ten hyperactive windows, you probably will not need all of them. Therefore, use this setting to active or deactivate the hyperactive windows you want or don't want to use. A setting of hyperactive will enable the window. By default, all ten windows are turned off. Keep in mind that Vocal-Eyes monitors the hyperactive windows from A to J. Therefore, if both hyperactive windows A and D trigger at the same time, window A's commands will be issued first. Interrupt: Yes/No When a hyperactive window triggers, you have the option of telling Vocal- Eyes to silence any speech in progress and then do the specified commands. If you don't silence the speech, anything spoken by the hyperactive window will be buffered to the end of the text currently being spoken. It normally is a good idea to interrupt the speech so you know instantly your hyperactive window triggered. The default is to interrupt the speech. If you have set the window to interrupt the speech and you have interruptability enabled, Vocal-Eyes will temporarily disable interruptability for about one second. Lets say you are typing at the keyboard when a hyperactive window triggers. If the window was told to read something, you don't want your keystrokes to instantly silence the speech before it's had a chance to speak. If you really do want to silence the speech, simply press the CONTROL or ALT key. These keys, with interruptability enabled, will always silence the speech. Also, notice that if two hyperactive windows trigger at the same time the second will not interrupt the first, even if you have it set up to interrupt. If something has been sent to the synthesizer after the first window has triggered but before the second, the second hyperactive window will indeed interrupt the speech. Again, this technique is used so hyperactive windows do not interrupt other hyperactive windows. Trigger On: This option allows you to rotor through all fifteen ways to trigger the hyperactive window. We discussed each option above. Simply use the space bar to move to the desired option and then continue to the next item. First Command: Second Command: Third Command: The final three choices allow you to set up to three commands Vocal-Eyes should do if this hyperactive window triggers. We have already talked about the eight choices available. All three commands by default are undefined. Use as few or as many of them as you like. For example, the first command may be speak string, the second command could be speak light bar and the final option could be to load the disk set FILES.SET. Let your imagination soar with the possibilities. If you select Speak Window, Speak String, Activate Window, Load Disk SET or Load RAM SET, you must then press ENTER. Once you press ENTER, Vocal-Eyes will prompt for the needed information. For example, if you select speak string, you will be prompted for the string itself. If you select load disk SET, you will be prompted for the name of the .SET file to load. If the selection only requires a single character input such as activate window or load RAM SET, simply type the single digit. Do not press ENTER. If you are supplying the .SET file to load, you are limited to 8 characters. Therefore, do not include a path or extension as part of the file name. Vocal-Eyes will use the standard loading procedure. If you selected the speak window option, the valid windows are zero through forty-nine and A through J. In order for Vocal-Eyes to conserve memory, it has allocated eighty characters of storage for text strings to be spoken and the disk SET file names. Although there are ten hyperactive windows and each supports three commands, you cannot set up all thirty commands as speak string if the total number of characters exceeded eighty characters. It if very unlikely you will ever encounter this type of problem but if you do, Vocal- Eyes will give the following error message: Allocation table full. Unable to save entry. If you receive this error message, Vocal-Eyes is telling you there is no room to store the new string or set file name. What you typed has not been saved. If this happens, you may want to shorten your string lengths or file names to conserve memory. Once you have all options set the way you want them, either press ENTER, right arrow or down arrow from the last option or press the ESCAPE key from any option. The entries will be remembered after you exit the hyperactive window definition. Don't forget to save your .SET file if you want to store this definition permanently. There are certain considerations you need to be aware of for some of the triggering options available. For example, the exact matches and different matches somehow have to know what the original data is in order to make a comparison. Also, the contains and does not contain attribute settings must know what the particular attribute color is. Lets discuss where, how, and when Vocal-Eyes gets this information. 1) If your trigger string is set for any of the 3 exact matches or any of the 3 different matches, the data must be on the screen and the hyperactive window coordinates must be set up for the area before you press SHIFT- F7. 2) If your trigger string is either contains attribute or does not contain attribute, the review cursor must be sitting on the character which contains the color you wish to use when you press SHIFT-F7. Vocal-Eyes does not actually update what it is looking for every time you enter the SHIFT-F7 menu. For example, if you already have the window triggering correctly but you wish to set the interrupt setting or any of the commands, you do not have to worry about fulfilling the two requirements above. When you first enter the SHIFT-F7 menu, Vocal-Eyes makes a note of the current status setting and the current trigger on setting. When you exit the menu, Vocal-Eyes compares the settings it saved when you first entered the menu with the current settings. If either of these two settings has changed, Vocal-Eyes will update what it is looking for. However, even if one of the settings has changed, the status must be set to hyperactive in order for Vocal-Eyes to take a new "snap-shot." After all, why update the values if the hyperactive window is not even activated? It is very important that you understand when Vocal-Eyes updates what it is looking for in the exact matches and the different matches as well as what attribute it is looking for in the contains attribute and does not contain attribute settings. If your trigger string is any of the other 5 settings, there is no problem since nothing is needed by Vocal-Eyes which is not already supplied. Lets say you have a hyperactive window all set up. It is enabled, triggering if the window contains the color yellow on black. But now, you decide to trigger the window with blue on black instead. How can this be done? If you press SHIFT-F7, there is nothing on the menu to change so when you exit the menu Vocal-Eyes will not update the color under the review cursor position. Although this may be a rare case, you need to know how to handle this situation should it arise. Since Vocal-Eyes only updates if the status is set to hyperactive and either the status setting or the trigger setting has changed between the time you entered the menu and the time you exited the menu, you need to make your change in two steps. First, place your review cursor on the new attribute you've chosen for your trigger condition. Next, enter the menu with SHIFT-F7 and set the hyperactive window to off. Then press the ESCAPE key to exit the menu. Now make sure your review cursor is still sitting on the new color (blue on black) and press SHIFT-F7 again. Now you can change the setting from off to hyperactive and exit again with the ESCAPE key. This time, Vocal-Eyes will notice that the status setting has changed and it is set for hyperactive. Vocal-Eyes will then take note of the color under the review cursor and use that for its future comparisons. Although this is not a difficult procedure, it can be a bit confusing at first. If you remember when Vocal-Eyes updates what it uses for comparison, you should be able to master the hyperactive windows. F8: We have already talked about this command. Remember, it will read the coordinates and status of the currently selected window as well as the coordinates and status of the currently selected hyperactive window. SHIFT-F8: Remember, ALT-F8 will read through all ten standard windows, giving you the status and coordinates of each. SHIFT-F8, similarly, will read through all ten hyperactive windows and give you the status and coordinates of each. 13.6: TYPING IN HYPERACTIVE WINDOWS If you have a hyperactive window set up for any change, any text change or any attribute change and you type within the window, Vocal-Eyes will not consider your keystroke as a change and will not trigger the window. This is because you normally do not want your actual keystrokes to be considered a change. If the keystroke causes a change to the screen other than just printing the character typed at the cursor position, the window will trigger as expected. 13.7: GLOBAL ENABLING AND DISABLING OF ALL HYPERACTIVE WINDOWS At some point, you may wish to disable all hyperactive windows. Of course you could enter review mode and manually disabled each window by selecting the window and toggling it off. But if you later wanted them to be active again, you would have to reverse the process. This can be very time consuming. There are actually two ways you can very quickly disable and enable all hyperactive windows at once. Even though they are disabled, each individual window will show a setting of hyperactive. However, until you re-enable the windows, Vocal-Eyes will not monitor any of them. The first approach uses one of the Vocal-Eyes hot keys. Option 57 (Hyper On/Off). This hot key will toggle the hyperactive windows on and off. Simply press this hot key and Vocal-Eyes will either say "Hyperactive windows off" or "Hyperactive windows on" depending on the current state of the hyperactive windows. The second approach can be done through option ten (Hyperactive Status On/Off) located in the General submenu. Simply move to this option and press ENTER. Each press will toggle the windows off or on. 13.8: HYPERACTIVE CHECK DELAY Option 18 (Hyperactive Check Delay) located in the General submenu gives you control over how often Vocal-Eyes should check it's hyperactive windows for changes. This also effects how often Vocal- Eyes checks for boxes if the auto box read feature is enabled. You can supply a number from one to ninety-nine, each number representing one eighteenth of a second. For example, thirty-six would tell Vocal-Eyes to check every two seconds. By default, Vocal-Eyes waits six eighteenths or one third of a second. This means each of the active hyperactive windows will be checked three times per second for changes. Why would you want to slow Vocal-Eyes down? There are two good reasons. 1) If you have the value too low causing Vocal-Eyes to check too quickly, Vocal-Eyes may trigger on a hyperactive window or a box before the screen has finished changing. If this happens, you may not get the results you intended. In other words, you may get only a portion of the new information. 2) The more often Vocal-Eyes checks the hyperactive windows and pop- up boxes, the more time Vocal-Eyes steals from your machine. If you have several large hyperactive windows and you are running on a very slow machine, you may wish to increase this value to give you a better over-all response. However, If you are using a relatively fast machine and are using an applications program which updates the screen quickly, you may wish to decrease this value. The smaller the number, the faster Vocal-Eyes will notice a change. Lets say you have a hyperactive window monitoring line twenty-five for any change. Once a change has occurred, you have instructed Vocal- Eyes to read the entire line. If you have the hyperactive check delay set at ninety-nine, Vocal-Eyes will wait ninety-nine eighteenths or five and a half seconds before reading line twenty-five. Setting this value to one would cause Vocal-Eyes to read line twenty-five immediately. If your application flashes error messages on this line very quickly, the first setting might cause you to miss some messages. Also, if your application "repaints" the line frequently with no new information being added, the second setting might cause your program to chatter incessantly. The default setting of six should work with most applications. 13.9: HYPERACTIVE WINDOW EXAMPLE Now that you know everything about hyperactive windows, lets go through an actual example. Lets say you are using an integrated program which offers a word processor, spreadsheet, and database. PFS First Choice, Microsoft Works, or Eight-in-One are examples of this kind of program. When you first start up your application, you get a menu offering the three (or more) options. By picking any of the choices, you activate the desired function. Lets say at the top left of the screen the application prints "Word Processor," "Spreadsheet," or "Data Base" depending on which option you are currently using. You will probably want a custom .SET file for each of the three environments since the screens will be quite different and the cursoring keys will behave differently in the three environments. You could manually load the desired .SET file but how about using hyperactive windows? Note that the autoloading feature may not function since, depending on the applications program, a program is not necessarily being executed from disk when you go from one environment to another. For our example, lets start with the VE.SET file supplied and modify it. Startup the application program and select the word processor. Since "Word Processor" is now displayed at the upper left of the screen, set up hyperactive window A for an exact text match. You could set the coordinates at: left one, top one, right fourteen, and bottom one. Now press SHIFT-F7 and set the status to hyperactive and the trigger command to "exact text match." The exact match will consider both the characters and the color but exact text match will only consider the text. "Exact match" would probably work, but if you change the colors within your program later, you may find your hyperactive window quits working. Now set up the first command to speak the string "word processor." Since we know hyperactive window A already contains this message, we could have said read window A. Both approaches would get the same results. Now lets set up the second command to load a disk SET. Give it the name "WORDPROC." We will create WORDPROC.SET shortly. Now ESCAPE from this menu and save the .SET file to disk. Lets call this "MENU" for our example. For your real-life application, be sure to match this file's name with the name of the .EXE or .COM file you execute when you run the program. Whenever you have a hyperactive window loading another .SET file, it is always a good idea to save the current .SET file to disk before you exit review mode or the control panel. This is because your hyperactive window is going to trigger and load a new .SET file and the one you just edited will be lost. Now lets load "VE.SET" from the control panel. We want to start with a fresh SET file for our word processor. You will want to adjust all the features of Vocal-Eyes to work best with the word processor as we've been doing throughout this manual. However, in this example, we are only concerned with the hyperactive windows. When you exit the word processor, you will want to load the original MENU.SET file automatically. We have MENU.SET loading WORDPROC.SET but how can we get WORDPROC.SET to reload MENU.SET when the word processor is exited? We loaded WORDPROC.SET by using an Exact text match which looked in the upper left corner for the words "Word Processor." How about reloading MENU.SET by triggering on "Different match?" In other words, if "Word Processor" is not in the upper left, load "MENU.SET." Now that you have VE.SET loaded, remember that you now have ten new hyperactive windows to work with. Lets set up hyperactive window B to left one, top one, right fourteen, and bottom one. Now press SHIFT-F7 to set the status to hyperactive and trigger to Different text match. You can set the first command if you wish to speak "Main Menu" and the second command to load the disk SET "MENU." Now save this SET file to disk with the name "WORDPROC." To give your changes a try, exit to the menu. You should have heard Vocal-Eyes say "Main Menu" and the "MENU.SET" file should have been loaded. Now pick the word processor option again. Vocal-Eyes should say "Word Processor" and load "WORDPROC.SET" automatically. Congratulations, you now have Vocal-Eyes working automatically for you. To continue our example, you will want to set up hyperactive window B of MENU.SET to look for "Spreadsheet" in the upper left. If there, you may want to load "SP.SET." Then SP.SET will wait until "Spreadsheet" disappears from the upper left and load MENU.SET. You can use hyperactive window C of MENU.SET to load the appropriate set file for the data base as well. Feel free to experiment with hyperactive windows. Once set up, they can make an application program speak and act as if it had been written for speech. 13.10: POTENTIAL PROBLEMS WITH HYPERACTIVE WINDOWS Below are a few potential problems you may encounter while setting up hyperactive windows. 1) Infinite loop It is possible for you to set up a hyperactive window which when triggered loads a new .SET file. That .SET file could have a hyperactive window which loads the original .SET file. If not set up properly, they may continuously load each other. For example, if you have the first .SET file triggering if blue on black is contained anywhere on the screen to load the second .SET file. The second .SET file may have a hyperactive window which says load the first .SET file if the color blue on black is anywhere on the screen. This would cause Vocal-Eyes to constantly switch back and forth between the .SET files-- an infinite loop. If this happens to you, don't worry. Simply enter review mode and fix the problem. Whenever you enter the voice control panel or enter review, the hyperactive windows shut down until you return to the applications program. You could also use the Hyper On/Off hot key to turn off all hyperactive windows and then fix the problem. You should also keep in mind that when a new .SET file is loaded with a hyperactive window set up for any change, any text change, or any attribute change it will trigger immediately and then again only if the area changes. 2) Not saving your new .SET file before a new one is loaded. If you have set up a hyperactive window to load another .SET file based on a particular occurrence, you should always save the .SET file as soon as possible. This is because if the hyperactive window triggers before you have a chance to save it to disk, all your changes to the current .SET file will be lost as the new one is loaded. 3) Your hyperactive window is not triggering on the correct data. If you set up your hyperactive window for any of the three exact matches, any of the three different matches, or contains or does not contain attribute, you must remember how and when Vocal-Eyes gets this information. If a window is not triggering as you expect it should, please refer to section 13.5.