Bei GEMScript nun ist dies ein wenig anders realisiert. Um ein Skript aufzunehmen, sollte man als Applikation zuerst einmal den Scriptinterpreter nachstarten. Dies geschieht durch Ermitteln der Environmentvariablen "GEMSCRIPT" und anschließendem Starten des dort gefundenen Programms, vorzugsweise mit shel_write(). Der Vorgang hierzu ist dem Nachstarten des OLGA-Managers nicht unähnlich, wer das schon einmal gemacht hat, dem sollte es nicht schwerfallen, auch den Skriptinterpreter derart aufzurufen.
Ist das geschehen, müssen wir dem Interpreter mitteilen, daß wir ein solches Makro aufnehmen wollen. Dies geschieht über die folgende Message im bereits bekannten Messageformat:
GS_OPENMACRO msg[0] GS_OPENMACRO msg[1] AES-ID der Applikation msg[2] 0 msg[3] + Pointer auf Dateinamen, unter dem das Skript gespeichert werden soll msg[4] msg[5] 0 msg[6] 0 msg[7] 0
Die Antwort vom Interpreter auf diese Message ist GS_MACRO:
msg[0] GS_MACRO msg[1] AES-ID msg[2] 0 msg[3] + exakt die Werte der empfangenen GS_OPENMACRO-Nachricht msg[4] msg[5] ID (am einfachsten das Dateihandle) zur Identifizierung des Scripts msg[6] 0: Datei ist geöffnet, Aufzeichnung kann beginnen; sonst: Fehler msg[7] 0
Die Extension des Dateinames, der bei GS_OPENMACRO mitgeschickt wird, erfahren wir aus der in der Message GS_REPLY mitgeschickten GS_INFO-Struktur (siehe letzte Ausgabe).
Es empfiehlt sich folgendes Vorgehen, wenn der User ein Makro aufzeichnen möchte: