Eingaben-Aufzeichnung
Die Eingaben-Aufzeichnung zeichnet Maus- und Tastatur-Events auf und erstellt ein neues Panel mit dem resultierenden Skript.
die Eingaben-Aufzeichnung ist dazu gedacht zur Laufzeit für Panels in Vision-Modulen
verwendet zu werden, und sollte daher nicht für GEDI Vorgänge benutzt werden.
Innerhalb des GEDI-Moduls wird mit dem Erweiterungsskript
inputRecorder_ext.ctl
die "Maus/Tastatur Eingaben Aufzeichnung"
dem Tools Menü hinzugefügt. Sie kann auch über die
Tastenkombination "CTRL"+ "Shift" + "R" erreicht werden.
Die Eingaben-Aufzeichnung verwendet Maus und Tastatur-Events, erstellt daraus CONTROL Skript-Aufrufe und speichert diese im internen Speicher bis die Aufnahme beendet wird. Wenn die Aufzeichnung wieder über das Tools-Menü beendet wird, wird ein neues Panel erstellt, in welchem das resultierende Skript platziert wird. Die "play()" Funktion in der ScopeLib dieses Panels wird verwendet um die aufgenommenen Events wieder abzuspielen. Ausführen der Funktion startet automatisch das Abspielen.
Das resultierende Skript sollte dennoch überprüft werden. Die letzten Events können entfernt werden, da die Events zum stop der Aufzeichnung sind. Diese Events werden natürlich ebenso aufgezeichnet, sind aber überflüssig.
Das Playback-Skript verwendet die Ctrl++ Klasse InputEventPlayer
.
Diese Klasse verwendet die "current shape", an welche die Events gesendet werden.
Wenn keine Shape gesetzt ist (z.B.: mit clearCurrent()
), werden die
Events an das derzeitig aktive Popup oder Fenster gesendet. Dies ermöglicht eine
flexiblere Adressierung, z.B.: die Adressierung eines Popup-Menüs von einem
Rechtsklick. Der InputEventPlayer adressiert Objekte in einem Panel mit dem üblichen
CONTROL Syntax, und ist damit nicht auf die Funktionalität von z.B. Squish, welches
QWidgets nur oberflächlich kennt, limitiert. Im Kontrast dazu kennen das
WinCC OA UI und die WinCC OA Eingaben-Aufzeichnung alle Objekte eines
Panels (z.B.: auch Primitive Objekte wie Linien, Rechtecke, usw.). Dies bringt
allerdings die Limitierung mit sich, das nur Objekte in einem Panel adressiert
werden können. Daher können GEDI Menü Funktionen nicht mit dem
InputEventPlayerverwendet werden. Diese werden deshalb auch nicht aufgezeichnet.
Sollten GEDI Funktionen aus dem Skript verwendet werden, kann triggerAction() verwendet werden. Hierbei wird der "Gedi_1" als zweites
Argument adressiert.
Zugehörige Funktionen