Description of Keys & Commands
==============================
Note: English translation still under construction!

Command-Group "BTCH": designed for RK scripts
=============================================


/BTCH.BEEP.ONE ........: To make one "beep"
/BTCH.BEEP.THREE ......: To make three times "beep"
/BTCH.BEEP.HOUR .......: To make hour controlled quantity of "beeps"
------------------------
These commands are useful in combination with the RK event functions like
timer (Event > Time).

Example: {/BTCH.BEEP.ONE}


/BTCH.CR>TAB ..........: To replace carriage returns to tabs within a script
------------------------
This command is designed to give more comfore using scripts which are made to
fill forms. Normally the TAB key is used to jump in a (HTML) form from field
to the next field. This command will help if (for example) an address head
should be copied from Word into a htm form because is is not needed to
include the tab commands (KEY.TAB) into the script by hand.

Example: {/BTCH.CR_TO_TAB}

-> Caution!
This command is inconsistent with BTCH.EXPLICIT, because both commands will
replace founded carriage returns. Therefore do not use EXPLICIT in first
script line if this command is needed.


/BTCH.DDE.BEGIN .......: To include a script for another RK instance
/BTCH.DDE.END .........: To set the end-point of the included DDE-script
------------------------
Eine Beschreibung der DDE-Funktion (in englisch) findet man im Kapitel
"Netzwerk". Je nach Einstellung im "Einstellungen"-Fenster und verfügbarer
Hardware kann der Skript-Bereich zwischen der BEGIN- und END-Anweisung
entweder an eine laufende RK-Instanz innerhalb des Rechners oder an eine
externe, eines im Netzwerk angeschlossenen Rechners laufende Instanz
gesendet werden.


/BTCH.DELAY sec .......: To make a delay before while sending keys & commands
------------------------
Dieser Command ist ein sehr wichtiger, denn oft kommt es vor, daß RK beim
Senden der Commands die Abarbeitung der Commands von der angesprochenen
Anwendung sozusagen "überholt". Dadurch können Commands verschluckt oder
ungewollte Resultate auslösen werden. Durch Plazierung einiger kleinen
Pausen im Skript gestattet man dem anderen Programm, den Part seines Jobs
erstmal zu Ende zu bearbeiten bevor die nächsten Befehle kommen.
Der sec-Parameter gibt die Pausenlänge in Sekunden an, wobei Werte kleiner
als 1 möglich sind. Wichtig ist, daß als Dezimalzeichen der Punkt und nicht
das Komma verwendet wird (0.3 oder 1.5 etc.)!
Beim Systemwechsel auf einen schnelleren Rechner mit schnellerem Disk-Zugriff
können die sec-Parameter sicher weiter verringert werden.
Der Makro-Rekorder bedient sich auch dieses Commands, wenn während der
Aufzeichnug auf den Pause-Knopf geklickt wird. Im fertig generierten Skript
kann man den sec-Parameter nachträglich ändern, d.h. i.d.R. wohl verringern.

Example: {/BTCH.DELAY 0.1}


/BTCH.DIVERT>CLIP.ON ..: To divert sending into clip, valid for current script only
/BTCH.DIVERT>CLIP.OFF .: To stop divert mode
------------------------
Gestattet das Senden in die Zw´ablage anstatt an die aktive Anwendung.
Der OFF-Comand ist nur nötig, wenn z.B. der Skript-Anfang in die Zw´ablage und der untere Teil
normal gesendet werden soll, da der Divert-Modus am Skript-Ende in jedem Falle deaktiviert wird.

Example: {/BTCH.DIVERT>CLIP.ON}


/BTCH.EXIT-TAG ........: To exit script at this point
------------------------

Example: {/BTCH.EXIT-TAG}


/BTCH.EXITIF.ASK text .: To exit script if cancel was clicked on msg requester
/BTCH.EXITIF.CLIP text : To exit script if clip-content = <text>
/BTCH.EXITIF.VAR= v ...: To exit script if VAR = value <v>
/BTCH.EXITIF.VAR> v ...: To exit script if VAR > value <v>
/BTCH.EXITIF.VAR< v ...: To exit script if VAR < value <v>
------------------------
Works like following command, but with an ASK-msg-requester, clip content query
and VAR content query (see VAR-commands).


/BTCH.EXITIF.CANCEL ...: To exit script if cancel was clicked on last shown dialog
------------------------
This command is valid for following commands:

- BTCH.TEXT.ASK
- BTCH.TEXT.LIST.CLIP
- BTCH.TEXT.LIST.SEND
- CLIP.TXT.ASK
- CLIP.TXT.BEHND.ASK
- DAT.TEMP.ASK
- DB.OPEN (Combo-table-selection)
- DB.REC.SELECT
- DB.TABLE.ASK-S
- DB.TABLE.SELECT
- STR.ASK
- VAR.FLD.ASK

Example:

{/BTCH.EXPLICIT}
{/DB.REC.SELECT}
{/BTCH.EXITIF.CANCEL}
{/DB.FIELD.SET 4}
{/DB.FIELD.SEND}

REC.SELECT showes a selection list dialog. The following commands
will not proceed if the dialog will be closed with cancel.


/BTCH.EXPLICIT ........: To list each command in a single line
------------------------
Long scripts are difficult to read because all commands are written one
by one in a row. It would be cleary arranged if the commands would be
listet each in a single row. But mostly this is not possible because
unwanted carriage returns (CR = ASCII 13) at the linefeeds would be send
to an application.
The EXPLICIT command which should be used at first command in a script
will suppress CR´s to get a better readable script and also empty lines
can be included.
Needed CR´s can be send with the KEY.ENTER or CODE.ASC 13 command.

Example: {/BTCH.EXPLICIT}

>>> See script sample at the end of this text.


/BTCH.GO-TAG tag ......: To set a jump-mark <tag> (=goto-tag)
------------------------
This command is required for all other GO-commands to define, where to jump.

Example: {/BTCH.GO-TAG mytag}


/BTCH.GO.TO tag .......: To jump to goto-tag <tag>
------------------------

Example: {/BTCH.GO.TO mytag}

The script will be continued at the place where {/BTCH.GO-TAG mytag} will be found.


/BTCH.GOIF.ASK txt,tag : To jump to goto-tag <tag> if cancel was clicked on msg requester 
/BTCH.GOIF.CANCEL tag .: To jump to goto-tag <tag> if cancel was clicked on last dialog 
/BTCH.GOIF.CLIP txt,tag: To jump to goto-tag <tag> if clip-content = <text> 
/BTCH.GOIF.VAR= v,tag .: To jump to goto-tag <tag> if VAR = value <v> (see Var-Commands)
/BTCH.GOIF.VAR> v,tag .: To jump to goto-tag <tag> if VAR > value <v>
/BTCH.GOIF.VAR< v,tag .: To jump to goto-tag <tag> if VAR < value <v>
------------------------

Example:

{/BTCH.EXPLICIT}
{/BTCH.GOIF.ASK Do you want Script B?,test-tag}
{/ME.BUTTON AProfile,ButS1}
{/BTCH.EXIT-TAG}
{/BTCH.GO-TAG test-tag}
{/ME.BUTTON AProfile,ButS1,1}

On click on OK, left button level will be executed of button ButS1.
On Click on Cancel, right button level will be executed of button ButS1.


/BTCH.INSTMODE.ON .....: To insert text by CTRL-v (fast) instead to send
/BTCH.INSTMODE.OFF ....: To switch INSTMODE off
------------------------
Sofern es sich beim zu sendenen Material um Text handelt und die
angesprochene Anwendung den Windows-Einfüge-Modus (Strg+v) unterstützt,
ist dies eine sehr schnelle Alternative zum normalen Senden von Text,
besonders für längere Textpassagen empfohlen.
Hierzu schaltet man den INSTMODE am besten am Skript-Anfang ein und nach
dem Einfügen des Textes am Skript-Ende wieder aus. Im Einstellen-Dialog
kann man den derzeitigen Zustand (ein/aus) ablesen, geändert werden kann
er dort aber nicht.


/BTCH.LOOP.START.VAL no: To repeat part of a script until LOOP.END for <no> times, fix
/BTCH.LOOP.END ........: To mark end of loop
------------------------
Mit Hilfe der Schleifen-Konstuktion kann der Skriptbereich, der sich zwischen
der Start- und End-Anweisung befindet, wiederholt werden.
Der Parameter <no> (number) gibt die Anzahl der Schleifendurchläufe an.


/BTCH.LOOP.START.VAR no: To repeat part of a script until LOOP.END while <no> smaller than VAR
------------------------
Auch bei der VAR-Varianten wird das Schleifen-Ende durch die o.g. END-Anweisung
festgelegt. Die VAR-Variante bietet aber die Möglichkeit, die Anzahl der
Durchläufe variabel zu halten, indem sie vor Eintritt in die Schleife abgefragt
wird. Die Schleife ist für Aufwärts-Zählungen konzipiert.

>>> Siehe Beispiel-Skript 1 am Ende dieses Textes.

In diesem Beispiel kann der Anwender die gewünsche Anzahl der Schleifen-
Durchläufe mittels des ASK-Commands während der Abarbeitung des Skripts
festlegen.
Da ein Abwärtszählen bis 0 nicht funktioniert (die Schleife fragt >= ab),
wird hier ein Trick angewandt, indem der Wert zunächst negativiert wird
(MUL -1) um ihn dann bis 0 raufzuzählen.


/BTCH.MSG.AUTO sec ....: To open a dialog that showes date, time for <sec> seconds
/BTCH.MSG.TEXT text ...: To open a dialog that showes the message <text>
/BTCH.MSG.TIME [text] .: To open a dialog that showes date, time, cw and a message (text=optional)
------------------------
Diese Commands sind vorwiegend für die Nutzung des RK-internen Timers
konzipiert, können aber auch anderwärtig eingesetzt werden.
Der sec-Parameter steuert die Zeit, die das Fenster geöffnet bleibt.
Mit den text-Parametern gibt man einen Text vor, der ausgegeben wird
(im 3. Fall optional).

Examples:

{/BTCH.MSG.AUTO 3}
{/BTCH.MSG.TEXT Columbo fängt gleich an}
{/BTCH.MSG.TIME}
{/BTCH.MSG.TIME Daggi wartet!}


/BTCH.MSG.CLIP ........: To open a dialog that showes the clipboard included text
------------------------

Example: {/BTCH.MSG.CLIP}


/BTCH.POP.OWN .........: To generate and view an individual popmenu
------------------------
Dieser Command gestattet es, ein individuelles Popmenü zu kreieren.
Bei Anwahl eines Menü-Punktes wird dann ein dem Menü-Punkt zugeordneter
Command ausgeführt, Definition und Ausführung also kompakt in einem Skript.
Dem POP.OWN-Command kommt hierbei eine doppelte Funktion zu:

1. Er leitet die Definition des Menüs im Skript ein.
2. Er bewirkt, daß das Menü beim Klick auf den Knopf angezeigt wird.

Das Skript ist so aufgebaut, daß Menüpunkt-Titel und auszulösender Command
abwechselnd deklariert werden.
Auf den EXPLICIT-Command kann verzichtet werden, denn das Skript ist
- wie im folgenden Beispiel gezeigt - stets untereinander zu listen.


Example:

{/BTCH.POP.OWN}

Play a song
{/ME.BUTTON Store,TimMsg}
Profiles
{/ME.POP.PROF}

Dieses Skript erzeugt ein aus 2 Einträgen bestehendes Popmenü mit den Menü-
Punkten "Play a song" und "Profiles". Bei Anwahl eines Menü-Punktes wird
sodann der im Skript unter dem Menü-Punkt stehende Command ausgeführt.

Ein Beispiel für ein eigenes Popmenü befindet sich im "OwnPop"-Knopf des
"Store"-Profils.

Übrigens kann ein solches Popmenü auch über die Ereignis > Tasten Funktion
aufgerufen werden, und das sogar, wenn das RK-Fenster sich gar nicht auf
dem Bildschirm befindet (Versteckt im Systray).

--> Hinweis
Ab v8.1 können je Menü-Eintrag mehrere Commands definiert werden.
Als Trennung der einzelnen Einträge dient nicht mehr die geschweifte Klammer,
sondern der Zeilenumbruch.

Example:

{/BTCH.POP.OWN}
Play a song
{/ME.BUTTON Store,TimMsg}{/BTCH.BEEP.ONE}
Profiles
{/ME.POP.PROF}


/BTCH.REM text ........: To include a remark into the script
------------------------

Example: {/BTCH.REM Skript noch nicht fertig}

Beispiel: 
{/BTCH.REM
Skript ist noch nicht fertig!
}

--> Tip
Dieser Command kann auch dazu verwendet werden, den Fokus an die letzte aktive
Anwendung zurückzugeben, sofern RK oder der Profil-Explorer den Fokus gerade
besitzt.

Beispiel (alleinstehend im Skript):
{/BTCH.REM}

Dieses Skript setzt also den Automatismus von RK in Gang, die letzte aktive
Anwendung nach einem Knopf-Klick zu aktivieren, verhindert aber zugleich
(im Gegensatz zum KLick auf einen unbelegten Knopf), daß das "Bearbeiten >
Knöpfe"-Fenster automatisch geöffnet wird.


/BTCH.RETRIEVEFOCUS ...: To cause RK to force the active window for the following sendings
------------------------
In längeren Skripts, in denen mehrere Fenster geöffnet werden, kann RK nicht
verfolgen, welches Fenster am Ende aktiv ist, um die automatische Aktivierung
aufrecht zu erhalten.
Dieser Command veranlaßt RK dazu, das aktive Fenster neu zu ermitteln.
Ein Beispiel, in dem dieser Command erforderlich war, findet sich im RK-
Profil "Store" unter dem grafischen Explorer-Knopf, der sich in der rechten,
unteren Ecke befindet.


/BTCH.SLOW msec .......: To speed down the sending, msec=0 to switch slow-mode off
------------------------
Wenn ein Skript mit zahlreichen Delay-Commands untersetzt ist, kann es
sinnvoller sein, den Ablauf des Skriptes generell zu verlangsamen,
um schließlich auf die Delay-Commands verzichten zu können.
Mit dem msec-Parameter legt man die Verzögerung in Milli-Sekunden fest.
Spätestens am Ende des Skriptes sollte die Verzögerung mit {/BTCH.SLOW 0}
wieder aufgehoben werden. Im Einstellen-Dialog kann man den derzeitigen
Status ablesen, geändert werden kann er dort aber nicht.


/BTCH.STOP ............: To stop the sendings by a click on a stop button
------------------------
Auf das Material, das bereits durch RK abgeschickt wurde, kann RK keinen
Einfluß mehr nehmen. Aber die Abarbeitung eines Skriptes kann mit Hilfe
dieses Commands gestoppt werden. Dies ist fast nur in Skripts sinnvoll,
die Schleifen beinhalten.
Der STOP-Command sollte möglichst weit oben im Skript plaziert werden.

>>> Siehe auch das Beispiel-Skript 1 am Ende dieses Textes.


/BTCH.TEXT.ASK [qu,pre]: To send a variable text including a text module, qu=question, pre=preset
------------------------

Examples:

{/BTCH.TEXT.ASK}
{/BTCH.TEXT.ASK Current Year}
{/BTCH.TEXT.ASK Current Year,2002}
{/BTCH.TEXT.ASK ,2002}

Ich bitte um Rückantwort bis zum {/BTCH.TEXT.ASK Please enter the date,??.??.2002}.
MfG

In diesem Beispiel kann das Datum während des Sendens des Textes an eine
Anwendung eingegeben werden. Trifft RK nun auf diesen Command, unterbricht er
das Senden und öffnet ein Eingabe-Fenster, in dem das Datum (in diesem
Beispiel) eingegeben wird. Nach dem Schließen des Fensters wird das Datum in
den Text eingefügt und der restliche Text gesendet.
Selbstverständlich kann dieser Command mehrfach in einem Text implementiert
werden.
Die Parameter <qu> und <pre> sind optional, um im Eingabe-Requester einen Aufforderungs-Text
(Frage) und/oder einen Vorgabe-Text (Preset) anzuzeigen.

Ein Beispiel für den Einsazt dieses Commands findet sich im "input"-Knopf
des "Store"-Profils.

--> Tip
Wird der Dialog durch "Abbrechen" geschlossen, so kann die Skript-Abarbeitung
an dieser Stelle durch den Commands "BTCH.EXIT-ON-CANCEL" (siehe dort) beendet
werden.


/BTCH.TEXT.LIST.CLIP ..: To copy a text into the clip, selected from a list which is defined in 2nd plane
/BTCH.TEXT.LIST.SEND ..: To send a text, selected from a list which is defined in 2nd plane (right mouse but.)
------------------------
Diese Commands stellen eine Auswahlbox dar, aus der der Anwender einen Eintrag auswählen kann,
der entweder gesendet (.SEND) oder in die Zw´ablage kopiert wird (.CLIP).
Diese Commands können nur in der 1. Ebene eines Knopfes (für die linke Maustaste) eingesetzt werden,
weil in der 2. Ebene (rechte Maustaste) die Liste definiert wird.
Für diesen Zweck werden die Einträge einfach untereinander gelistet.

Example:

Plane 1 (linke Maustaste):

Hello {/BTCH.TEXT.LIST.SEND}, how are you?

Plane 2 (rechte Maustaste):

Robin
Paul
Martha

Wird nun der Knopf angeklickt, so erscheint eine Auswahlbox mit den 3 aufgeführten Namen.
Nach Bestätigung durch "OK" wird der Satz mit dem ausgewählten Namen an die aktive Anwendung
gesendet.

--> Tip
Im Store-Profil veranschaulicht der Knopf "send list" die Funktionsweise


/BTCH.WAIT.TOP title[,t] : To wait until the window <title> comes to top, <t> = sec timeout
/BTCH.WAIT.BACK title[,t]: To wait until the window <title> goes back
--------------------------
Diese Commnds ermöglichen die Abarbeitung eines Skriptes anzuhalten, bis ein
spezifiziertes Fenster erscheint bzw. verschwindet. Mit dem Timeout-Parameter
<t> (optional) kann man die auf 10 Sek. vorgegebene Timeout-Zeit verändern.
Die Timeout-Option verhindert, daß RK möglicherweise in eine Endlos-Schleife
fällt.
Joker ("*") werden bei der Fenstertitel-Angabe automatisch gesetzt und sind
nicht mit anzugeben, auf Groß- und Kleinschreibung ist allerdings zu achten.

Example: {/BTCH.WAIT.TOP Editor,2}


-----------------

Beispiel-Skript 1
=================

{/BTCH.EXPLICIT}
{/BTCH.STOP}

{/VAR.ASK}
{/VAR.MUL -1}

{/BTCH.LOOP.START.VAR 0}
Test{KEY.ENTER}
{/VAR.ADD 1}
{/BTCH.LOOP.END}
