War gestern bei einer MPR-Schulung, daher kommt mein Reply erst heute.
So eine Schulung ist jedem ernsthaften Anwender, der den MPR kommerziell einsetzen will zu empfehlen.
Nun zu dem Fall oben.
Der InstaRec" zeichnet zum Beispiel folgendes auf:
Code: Select all
' No.:4 | Time: 13:01:08 | Ticks: 1071
' The following statics have been found:
' 1. Static\Ordn&er:
' 2. Static\_0610E5370F60D59E2AF64606F9FEB1A3
' 3. Static\MsiHorizontalLine
' 4. Static\MsiHorizontalLine
' 5. Static\Installationsordner wählen
VAR\$$PRO=4
STW\MsiDialogCloseClass\LANDesk ServiceDesk Console|w30 ' MsiDialogCloseClass\LANDesk ServiceDesk Console
' This command is used between equal buttons to prevent problems.
SPC\Static\_0610E5370F60D59E2AF64606F9FEB1A3|w30
GCT\ ' This command localizes the current Top-Window.
GCW\905\1\Button\&Weiter|w30' &Weiter
WII\3
SAW\
BCS\1||240
Fragt man sich nun was das soll.
Warum schreibt der InstaRec da noch zig "statics" als Kommentare dazu?
Nicht, weil er Ihnen Stoff zum Lesen geben will, sondern
genau aus dem Grund, den wir hier haben.
Wenn das Script bei dem Befehl:
Code: Select all
SPC\Static\_0610E5370F60D59E2AF64606F9FEB1A3|w30
nich weiter läuft, dann heisst das, dass es zur Laufzeit dieses "static" (=Textfeld) nicht gibt.
Ein menschlicher Benutzer kann das auch aus dem Code-Wirrwarr des static-Textes schliessen.
Und nun nimmt man eben eines der anderen "statics" von denen, die der InstaRec genau aus dem Grund hier anbietet.
Falls das Problem trotzdem weiter bestehen sollte, und es zum Beispiel von einem PopUp herrührt, das im Hintergrund liegt, muß man dieses eben mit dem "POPUP Rec" aufzeichnen. Wir können das via Aufaschaltung gerne mal zusammen machen.
Grundsätzlich empfiehlt sich zur ernsthaften Benutzung des MPR eine Schulung, Kurs 1, dauert 2 Tage, wie angedeutet.
Danach kann man solche Sachen in 30 Sekunden aufzeichnen. Und in wenigen Minuten lauffähig machen.
Nochmal für Einsteiger:
WARUM nimmt sich der InstaRec hier überhaupt ein "static"?
Der Grund ist, dass wir hier mehrmal den gleiche Button "Weiter" klicken müssen.
Normalerweise würde das so aussehen:
Code: Select all
STW\MsiDialogCloseClass\LANDesk ServiceDesk Console|w30 ' MsiDialogCloseClass\LANDesk ServiceDesk Console
GCW\905\1\Button\&Weiter|w30' &Weiter
MEL\
STW\MsiDialogCloseClass\LANDesk ServiceDesk Console|w30 ' MsiDialogCloseClass\LANDesk ServiceDesk Console
GCW\905\1\Button\&Weiter|w30' &Weiter
MEL\
STW\MsiDialogCloseClass\LANDesk ServiceDesk Console|w30 ' MsiDialogCloseClass\LANDesk ServiceDesk Console
GCW\905\1\Button\&Weiter|w30' &Weiter
MEL\
Der Robot arbeitet nun sehr schneller - schneller als das Setup. Er würde nun den Button "Weiter" klicken, und ehe der nächste "Weiter" Button erscheint gleich noch einmal drauf klicken.
Einfache Automatisierungssysteme machen nun einfach eine Wartezeit da rein.
Der MPR verabscheut Wartezeiten, weil das Setup blitzschnell durchlaufen soll.
Auf diese Weise werden Unterbrechungen für den User minimiert und der User hat gar keine Gelegenheit in den Prozess einzugreifen.
Deswegen macht der
InstaRec hier nicht einfach eine Wartezeit rein sondern macht
etwas intelligenteres.
1. Er verwendet den Spezial-Mausklick
BCS\ und
BSC\ wo er denkt dass dies Sinn macht.
2. Er entkoppelt das Script in dem er vor dem Button "Weiter" zunächst ein "static" - also einen Text lokalisiert. Und dann von da ausgehend erst den "Weiter" Button.
So ist gewährleistet, dass das Script immer mit voller Schnelligkeit ablaufen kann und ohne künstliche Wartezeiten.
Es gibt
zwei Dinge, die wir
beim Automatisieren von Scripten vermeiden:
1. Feste Koordinaten
und
2. Fixe Wartezeiten
Denn beides kann von Client zu Client unterschiedlich sein.
Dass wir versuchen ohne diese Dinge auszukommen ist ein
Markenzeichen des Matrix42 Package Robot.