1.1 |
Click the 'Global' button on the Application tree window. |
1.2 |
Click on the 'Extensions' button on the 'Global Properties'
window. |
1.3 |
Click on the 'Insert' button on the 'Extension and Control
Templates' window. |
1.4 |
Select the 'Activate_Agent' template from the list of extension
templates and click on the 'Select' button. |
1.5 |
Back at the 'Extension and Control Templates' window there
should appear the template with its details on the right. |
1.6 |
Check the 'No Agent' check
box if you dont want to generate any Special Agent code. This
is useful if your app doesn't compile and you want to exclude all agent
source when compiling. |
1.7 |
The 'This is part of a Multi-DLL App' check box is used to
indicate that the Agent data is exported from another DLL. |
1.8 |
The 'Export Agent defined in this DLL' check box (which is
hidden unless the application is a DLL) should be checked if the Agent data
must be exported to other applications. |
1.9 |
If this is an EXE change to the 'File Details' tab (EXE Only),
or else continue with step 1.21. |
1.10 |
The default file name for the sequence
file is 'Agent.tps'. You can change this by entering another file (and
a path if you require a set path) or a variable (by omitting the quotes)
into the field provided. If the file name field is left blank, the file
name will automatically default to 'Agent.tps'. |
1.11 |
Check the 'Use
this file for the Character Gestures' if you want to store the characters
and their gesture sets in this file. (see What
Files to Use for some suggestions on file usage) |
1.12 |
If you left the 'Use this file for the Character Gestures'
unchecked then you may enter a file name and path here (don't use quotes
if you want to enter a variable name). If left blank, then a "Gestures.tps"
file will be used to store the characters and their gesture sets. |
1.13 |
If you are
wanting to omit learning some events (like size/move) you can enter a file
setting for this file in the 'File to store excluded events'. This file
is only used for learning purposes, and will not prevent events from being
sent that are already in the sequence. This is purely a time saver to prevent
general unwanted events from being entered into the sequence. You may want
to make one Excluded events file for all your Special Agent programs and
keep this in one place, or you may decide to use one for this application.
(see 'Excluded
Events' in the 'Setup' on excluding events) |
1.14 |
Change to the 'Translation' tab. (EXE Only) |
1.15 |
Check the 'Use Special Agent's Translator' checkbox
if you require the Special Agent windows and messages to appear in a language
other than English. (see Translating
the Special Agent DLL for more details on translating) |
1.16 |
The Default language file is the file that the
translator is set to use at program start-up. You may change this file using
the 'Call_MsALanguage' code template. |
1.17 |
The Position
options are used to determine where the translation files are stored.
You can either select the EXE directory or specify another directory. If
the translation files are not there when the program is run, a new translation
file will be made. |
1.18 |
The
'All Messages into Translation File on Start-up' is useful when creating
a translation file. If this is checked, then on program start-up, Special
Agent will ensure that all the messages it uses are in the translation file.
The ones that it does not find are written into the translation file there
and then. If this is left unchecked, then it will only check the messages
in the translation file as the occur individually. |
1.19 |
The 'Restrict Menus to One Language' is useful
if you have a sequence file containing sequences of more than one language.
This will restrict the sequences displayed in the 'How Do I?' menu and the
sequence popup menus to the setting below. If unchecked, then all the language
settings of the sequences in the sequence file will be ignored. |
1.20 |
The 'Selected
Language' is the language that you select to limit the sequences to.
This language must match a language in the Special Agent language file,
otherwise the language setting will be ignored.
Note: If you leave this field empty, the Special Agent will maintain
the Sequence Selection Limiter changes in the agent ini file. Update this
setting to use the changes made in the Change
the Language item from the Sequence window. (see International
Support for more details) |
1.21 |
Change to the 'Other' Tab. |
1.22 |
The 'Force IMM attribute
on windows' is used to ensure that all windows have the IMM attribute.
If a windows does not have the IMM attribute, then the agent.DLL is not
updated with the new positions of the window when it is moved/sized. If
you require that a window does not have the IMM attribute, check this off
and ensure that all your other windows have the IMM attribute checked on.
You will need to ensure that when that window's dimensions or position is
changed that you use the function ds_SendPosition
to inform the agent.DLL of the changes. |
1.23 |
The
default Hot key to bring up the Sequence window is 'Ctrl-F12'. If you
require a different Hot key, you can select one here. (EXE/Data DLL only) |
1.24 |
The 'Keep Agent open after running sequence' check box will
keep the agent open when the sequence is finished running. This is useful
if you want the agent continuously open, e.g. running random sequences now
and then. (EXE/Data DLL only) |
1.25 |
Check the 'Don't
display Agent load errors' check box if you don't want the following
Warning messages to be displayed: No Agents found, No Agent OCX loaded and
No Gestures.tps file found (see Runtime
Warning Messages). (EXE Only) |
1.26 |
The 'Don't display error messages at runtime' checkbox is
used to hide all the error messages that are normally displayed at runtime.
Instead of displaying the message, the DLL will place the message in an
error group and post an EVENT:UserError to the frame of your application.
There are two embed points: 'Agent - Error Event Handling' and 'Agent -
Error Event Handling (After Generated Code)' at the point of handling this
event in your frame procedure. The function 'ds_MsAErrorCheck' will be placed
there to retrieve the error parameters (see the Special Agent Technical
Manual for more details on this function). If this check-box is left unchecked
then these embed points will not appear and the errors (when they occur)
will be displayed as messages. (EXE Only) |
1.27 |
In the 'Agent Options' group you can select the default options
for the Agent's behaviour. These options are: 'Show the Speech balloon',
'Pace the Balloon text', 'Close the speech balloon' and 'Allow Agent Idling'.
These are stored in 'msa.ini' file in your windows directory (by default).
These are only the default settings, the user can double click on the agent
while a sequence is running and change them if required (if permitted -
more
details). If you require the settings for all Special Agent applications,
then you can leave the 'Apply these settings to this app only.' checkbox
blank, or else check it and it will save unique settings for the current
application. To override existing settings, check the 'Override existing
values' check box. Everytime the program is started, it will override any
settings that have been altered by the user or another program (if not program
unique).You can enter a filename for the ini settings if you would rather
not use the default ini file 'msa.ini'. |
1.28 |
Press the 'OK' button to exit from the 'Extension and Control
Templates' window. |
1.29 |
Each of the local procedures will be populated with the extension
template that applies to the Special Agent controls |
2.1 |
Select the frame procedure on which to the menu options will
be placed. |
2.2 |
Click on the 'Properties' button. |
2.3 |
Click on the 'Extensions' button to edit the local extension. |
2.4 |
On the Main Details tab, select a menu from the drop down
list. This must be a valid menu or the application will not compile. The
menu must also have a valid Clarion 'Use variable'. The agent menu 'How
Do I?' will be placed onto this menu at run time. (Using the ?Help menu
is normally the best) |
2.5 |
The 'Place items directly on this
menu' check box (if it is checked), will place all the sequences (that are
not sub-sequences (see Changing
a Sequence)) as items directly onto this menu, instead of having the
'How Do I?' menu created, with the items on it. |
2.6 |
You can change the name of the 'How do I...' menu if you want
to. The field is available to do this if you left the above check box unchecked.
You can enter a variable if you would like (this is useful for translation). |
2.7 |
The 'Disable "How Do I?" Menu' can be used if you
don't want to use the 'How Do I?' menu. This will exclude all the menu populating
code from the frame procedure of your application. |
2.8 |
If you would like to run a sequence
when this window is opened, change to the 'Other Details' tab and enter
a sequence name (using quotes) or the name of a variable containing the
sequence name in the Auto-run field. This means that if your program is
a demo, it will start the sequence without the user having to do anything.
There is an embed point called 'Agent - Before auto-running a sequence',
where you can set the variable (for instance using an ini file) before the
auto-run. This can be useful when you only want the sequence to run the
first time that a user runs the program. Check out the Example
Applications on specific details |
2.9 |
Another available option is to show the current step on the
status bar while a sequence is running. On the 'Other Details' tab, enter
a number in the 'Display Step' field, which will indicate which status bar
field to display the step on. If you don't want the step to be shown, leave
this option blank or 0. |
2.10 |
On the 'General' tab are the prompts that appear on all procedure's
local agent extension template. You can check the 'Omit the Agent from this
Procedure' to prevent Agent code from being generated for this procedure. |
2.11 |
You can prevent controls being included in the sequences by
clicking the 'Omitted Controls' button and adding the control to the list
that appears. This will ensure that no events associated with that control
will be learnt in a sequence. |
2.12 |
The 'Force IMM attribute ON' check box will be enabled if
you uncheck the 'Force IMM attribute
on all windows' check box in the Agent Global Extension template. If
you uncheck this, then the IMM attribute will be turned off for this window.
You will need to manually inform the Agent DLL of changes in the window's
size and position using the ds_SendPosition()
function. |
2.13 |
Press the 'OK' button to exit from the 'Extension and Control
Template' window. |
2.14 |
Press the 'OK' button to exit from the 'Procedure Properties'
window. |
7.1 |
Check the 'Test for 1 Agent' checkbox if you're wanting to
check for a specific agent, else leave this unchecked. |
7.2 |
If the 'Test for 1 Agent' checkbox is checked then the 'Check
Agent' tab will appear with a prompt to enter the Agent name. This name
should match the name in the Special Agent Character's file. |
7.3 |
If the 'Test for 1 Agent' checkbox is unchecked then the 'Get
All Agents' tab will appear. |
7.3.1 |
If the 'Select one Agent by popup and return that agent' check
box is checked then a popup menu of all the agents that are in the
Characters file will be displayed and the User's choice will be returned.
Alternatively the returned string will be a | (vertical bar) delimited list
of the agents in the Characters file. |
7.3.2 |
If the 'Include Agents not loaded' checkbox is checked, then
the agents that are in the Characters file, but not loaded will have a '~'
preceding them in the return string, or will be disabled in the popup menu
(if 7.3.1 is checked. |
7.4 |
The 'Variable for result' field should be a string long enough
to contain the returned string. If 7.1 and 7.3.1 are unchecked then your
string size should be 1024 to 2048. |
1.1 |
The 'Learn' button (with an icon of a book on it) will enter
learn mode, where new steps can be added to your sequence. |
1.2 |
The 'Run' button (with a VCR play icon on it) will run the
present sequence. |
1.3 |
The 'Step' button (with a VCR last icon on it) will step through
the present sequence - one step at a time. It will post the step that is
highlighted in the Sequence Window and then highlight the next step. |
1.4 |
The 'Load' button (with a select file icon on it) will bring
up the select sequence window, where an existing sequence can be selected,
changed or deleted. |
1.5 |
The 'Print' button (with the print icon on it) will print
the details and events of the loaded sequence directly from this window.
|
1.6 |
The 'New' button (with a clear page icon on it) will clear
the present sequence so that a new sequence can be learnt. |
1.7 |
The 'Add Call' button (with an insert or plus sign icon on
it) will add a call to another sequence at the present highlighted position
in the sequence. The sequence can be selected from the 'Select Sequence'
window. |
1.8 |
The 'Edit' button (with a triangle icon on it) will bring
up the change step screen, where the relevant fields can be changed. You
can also do this by double-clicking the left mouse button on the step in
the browse box. |
1.9 |
The 'Delete' button (with a 'minus' sign icon on it) will
delete the highlighted step from the sequence. |
1.10 |
The 'Cut', 'Copy' and 'Paste' buttons are not available at
present. |
1.11 |
The 'Shift Up' button (with an up triangle icon on it) will
shift the highlighted step up in the sequence. |
1.12 |
The 'Shift Down' button (with a down triangle icon on it)
will shift the highlighted step down in the sequence. |
1.13 |
The 'Exit' button (with an 'exit' icon on it) will close the
sequence window. The save to file routine is initiated when the window is
closed. |
1.1.1 |
The 'Previous' menu in the 'Sequences' menu contains a list
of a maximum of 6 of the last sequences that have been edited. This allows
quick loading of one of those sequences. |
1.1.2 |
The 'Save As..' item in the 'Sequences' menu allows you to
save an existing sequence as another sequence. |
1.1.3 |
The 'Renumber' item in the 'Sequences' menu will renumber
the current sequence into a more easily readable order (10,20,30,etc) because
(when editing sequences) the numbering soon becomes rather shabby. |
1.1.4 |
The 'Properties' item in the 'Sequences' menu allows you to
change the properties for the sequence that is loaded (without having to
go via the 'Select a Sequence' window). |
1.1.5 |
The 'Maintain' item in the 'Sequences' menu brings you to
the sequence browse window which allows you to change and view sequences
without affecting the present sequence that is open in the sequence window.
|
1.1.6 |
The 'Delete' item in the 'Sequences' menu will delete the
present sequence that is open in the sequence window. |
1.1.7 |
The 'Mouse Move' item in the 'Options' menu, which is an on/off
toggle and is defaulted to 'On'. This option is used to switch on/off the
mouse move function to allow/prevent the mouse from moving while the sequence
is being run. |
1.1.8 |
The 'Auto-Load' item on the 'Options' menu is an on/off toggle
to set whether you want the sequence that was previously run or edited to
load up automatically when you call the Sequence window. This is an ini
setting and will be maintained when the application is closed. |
1.1.9 |
The 'Warn On Unknown Gesture'
will issue a warning when an unknown gesture is issued to the Agent. This
option is stored in an ini file, but is defaulted off. It is only available
to the script writer. |
1.1.10 |
The 'Change Language' item
on the 'Options' menu will bring up the 'Set Language Window', which will
enable you to change the translation file used for translating the windows
and the Sequence Selection Limiter
(prompted: 'Saved Language'). Press the '...' lookup button next to the
'Saved Language' field in order to select a language from the language file.
This will only set the language until the program is closed. When it is
restarted, the language will be reset to the default (as set in the global
extension template). |
1.1.11 |
The 'Agent' item in the 'View' menu is used to open and close
the agent. This is useful if you are learning a sub-sequence and the agent
must be open before learning new steps. |
1.1.12 |
The 'Restore Defaults' item in the 'View' menu allows you
to restore the default sizing of the columns of the list box. |
1.1.13 |
The 'Agents' item in the 'Setup' menu is used for agent maintenance.
You can add agents here and maintain their gesture sets. (see Using
3rd Party Agents) |
1.1.14 |
The 'Gestures' item in the 'Setup' menu is used to for gesture
maintenance. Selecting this item will bring up a browse screen showing all
the gestures (the defaults on the one tab and the gesture set for the currently
used agent on the other) and their active state (1 = de-activated). To activate
an item double click on it and check/uncheck the 'de-activate' checkbox.
If a Gesture is de-activated it will not appear in the drop down list in
the learn window. If a Gesture has been learnt and is subsequently de-activated
it will not affect the previously learnt sequence.
Note: If a Gesture ends in 'ing' (or IDLE level 3)
it is a continuous gesture. You will need to learn a 'Stop' gesture in order
for any other Agent gestures to be played subsequently. |
1.1.15 |
The 'Voices' item in the 'Setup'
menu is used to setup the possible voices that can be used with the agents.
(see Setting an Agent's voice) |
1.1.16 |
The 'Languages' item in the
'Setup' menu is used to access the languages that can be used for the various
language settings. Selecting this option will bring up the 'Browse the Languages
File' where you can view, insert, change and delete records in the
Languages file. Both the Hex ID and the Language fields are critical as
settings for the languages are stored by both indices. The Hex ID must be
a 4 digit number and be proceeded by a capital 'H'. The standard windows
language IDs and descriptions can be found in the Microsoft Agent doc: 'progagentcontrol.doc'
(under the #LanguageID section). |
1.1.17 |
The 'Excluded Events'
in the 'Setup' menu is used to setup events that should not be recorded
into a sequence. You can set an event for a specific control type (like
mouseIn on regions) or for all types (move/size) and when this event is
trapped, it will not be saved into the sequence. This does not pertain to
existing sequences that have these events in already. These events will
still be sent when you run those sequences. If this item is disabled, then
you have not set a filename for the ExcludedEvents file in the Global
Extension Template. |
1.1.18 |
The 'Agent Docs' item in the 'Help' menu is a URL link to
this document on the CapeSoft website (by default). |
1.1.19 |
The 'Set to local path' item in the 'Help' menu will allow
you to set the URL link for the 'Agent docs' item (above) to a local path
if required. To reset the path to the CapeSoft website, click on this item
and press the cancel button on the Filedialog window that appears. |
3.1 |
Change the sequence name (that appears on the 'How Do I?'
menu), |
3.2 |
Change the sub-sequence status (if this is checked, the sequence
will be omitted from the How Do I Menu
and Sequence Popup Menus). |
3.3 |
A drop list will allow you to change the Agent that should
be used in the sequence (if you would like another Agent other than the
one that you learnt the sequence with). |
3.4 |
The Time Limit Option allows you to set a maximum time between
steps. You may find that most of the time between steps is too high. You
can set a sequence maximum, and then override this default on the individual
steps that require a longer delay. |
3.5 |
Change the description (the message that is displayed on the
status bar when the sequence item on the 'How Do I?' menu is highlighted),
on the "Details" tab. |
3.6 |
The 'Start in' procedure (on the "Details" tab)
is the starting point of the sequence. In the case of a frame with a splash
screen, the starting point of the sequence is often taken from the
splash screen and not the frame. You edit the name of the procedure so that
it appears in the 'How do I?' menu if this is the case. |
3.7 |
The 'Application' field (on the "Details"
tab) allows you to edit the sequence's parent application. This is useful
if you have a multi-DLL application and you require that the sequence starts
in one of the DLLs. |
3.8 |
The 'Override Voice' field will allow you to override the
default voice that the agent uses. This can be left 0 in order to use the
default voice. If you would like to change the voice for the specific agent
globally, then change the voice for that agent rather than changing it every
time you use it and leave this field 0. |
3.9 |
Use the 'Language Field' to set the language of a sequence.
This is not necessary if the sequence file contains sequences in only one
language. However if you ship the same sequence file with your application
to countries with different languages then use this option so that only
those sequences pertaining to the language (as setup in the translation
file) will be displayed in the 'How Do I?' menu. Otherwise leave the field
0. |
5.1 |
The comment - describes the step |
5.2 |
The time - (hidden for Agent steps and steps that use the
default timer as the maximum) sets the delay before the next step. To unhide
this field click on the 'Ignore Default Timer' check box. |
5.3 |
The value field - is used for text entry, tab selection, Agent
speech text, etc. If you've made a spelling mistake in your Agent speech
(for example) you can edit it in this field. |
5.4 |
The 'No Mouse Move' check box - gives you the option not to
move the mouse for this specific step. This is only applicable for events
that use this function (like selecting fields, pressing buttons, changing
tabs, etc.) |
5.5 |
The 'Agent Position Co-ordinates' - are used if the step is
an 'Agent Move' step. You may edit the co-ordinates that the Microsoft Agent
moves to. These co-ordinate fields are otherwise hidden. |
5.6 |
The 'Ignore Default Timer' checkbox allows you to override
the sequence time limit for this specific step. This is not applicable for
agent steps. |
5.7 |
The 'Item Control' check
box is used for sequences that were learnt before Version 1.16. This changes
the event that is saved from an EVENT:Accepted to an EVENT:UserItem, which
enables the menu drop down. If this is left unchecked, the browse (for example)
that the item selects will just appear, without the menus dropping down
and the required item highlighted. |
1. |
To stop or
pause the sequence while it's running see Stopping
the Sequence. |
2. |
If
you don't want the mouse to move for a specific step (like a hidden region)
you can check the 'No Mouse Move' checkbox, which will prevent any mouse
movements during this specific step. |
3. |
Note: The Mouse Move item in the Sequence window is only used to prevent
the mouse from moving during testing. It isn't saved and once you close
the window, this setting will be lost. The mouse will only move if (when
you're learning the sequence) you actually click on the control. If you
use the hot key, or the tab to get to the control, the mouse won't move
when you're running the sequence. |
4. |
The Timer is measured in hh:mm:ss
and can be set for any steps, except the Agent steps. This will set the
delay period after the step is processed, before the next step is issued.
The Agent steps are dependant on events passed to the DLL from the Agent
OCX, as the gestures, speaking, opening and closing, all have different
time periods, thus the timer is ignored for these steps (you will see that
it appears as 00:00:00) when the step is learnt. If you want to change the
time for a step you can use the Edit In Place function to shorten or lengthen
the delay. The individual times can be overridden by the Time Limit option
in the Sequence Details see Changing
a Sequence. |
5. |
You can learn a few
sequences and string them into one. This is useful if you're wanting to
use parts of the sequence elsewhere (like an all demo, and a demo of a browse
screen). You can use different agents in sub-sequences, string them together
into one, and have a sequence that uses different agents for different tasks.
You must close the agent before opening the next one though. |
6. |
All sequences that start on the Frame will appear in the 'How Do I?' menu
unless they have the 'Sub-Sequence' option clicked on. Similarly if you
have used the 'Agent_CallSequence' control template on your screen and you
don't want a sequence to be activated from that button, check the 'Sub-Sequence'
option on. Thus the 'Sub-Sequence' option will make your sequence hidden
from the end user. To do this, go to Changing
a Sequence. |
7. |
If
you want a Drop List/combo to stay dropped while selecting a record (while
playing a sequence back), check the NoMouseMove option ON on the Dropdown
and NewSelection steps to that Drop List/combo. |
8. |
If you
would like the Agent to appear somewhere other than the top left corner
of the screen, then when you learn a "StartAgent" command (i.e.
click the "Open the Agent" button on the Learn window) immediately
move the character to the place where you require it to open. When you run
the sequence, the character will be opened in the position you required. |
9. |
The user can set
some specific options for the Agent on their PC if they would like to. If
you're running a sequence, you can double-click on the agent for the Agent's
pop-up menu, there is a sub menu item called 'Agent Settings' (which can
be disabled if preferred - thus preventing the user from altering this).
In this sub-menu are 5 options:
1. 'Show Speech Text Immediately' - if you check this option then the agent's
speech text will immediately appear in the speech bubble, instead of appearing
as it speaks the text.
2. 'Keep Speech Bubble Open' - if you check this option, then the agent's
speech bubble will remain open after it has finished speaking. The speech
bubble will close if you move the agent, click on it, or close it.
3. 'Show Speech Balloon' - if you check this option, the agent's speech
balloon will be displayed with a speech command. If not, then only the audio
is heard with no balloon being displayed.
4. 'Show Property Sheet' - opens the property sheet, which allows you to
set some of the agent's properties.
5. 'Allow Agent Idling' - allows the agent to perform idle gestures
when no command is issued to it. |
1. You need to check the 'Disable "How Do I?" Menu' in the Agent
local extension template on the frame.
2a. Go into the window editor of the frame and populate the 'Call Agent
Browse Sequence' control template onto the toolbar.