The way Rekall functions can be extended in one of two ways, either by scripting or by the use of macros. The former provides the most functionality, but can be quite complicated and needs a knowledge of the python programming language. Macros, however, can be used to automate common sequences of operations in a simpler, pick-and-choose way.
A macro is a series of one or more actions. Each action is identified by a name and has a number of arguments which are specific to the named action. For instances there is an OpenForm action (which, as the name suggests, opens a form), which takes a single argument, the name of the form.
Macros can be stored in two ways. Firstly, a macro can be stored in an event, such as the OnClick event which is triggered when a user clicks a button. This is the easiest way, with the only disadvantage being that the macro cannot be accessed from anywhere else. The second alternative is to store the macro in a separate module, and to then invoke the macro module when it is needed (which might, of course, be from a button's OnClick event).
When Rekall executes an event function, it will always execute whatever is in the event function, be it a script or a macro. Similarly, if you edit an event that contains a script or a macro, then Rekall will act appropriately. However, if you edit an empty event, Rekall needs to know whether to use a script or a macro. By default (for compatability with earlier releases), scripting will be used. To change this, go to the View menu and bring up the Options dialog; under the Script/Macro tab there is a setting which controls rekall's behaviour. There are three options; to always use scripts (the default); to always use macros; or to prompt whenever editing an empty event.
Note that this setting is not relevant if you create macro modules. These are accessed via the Macro tab in the main database window.