sieht man wie der MPR die Buttons klickt.
Auch wenn man die Fenster verschiebt findet der MPR trotzdem die richtigen Buttons und klickt genau diese.
Das tut er in dem er sich nicht etwas irgendwelche Koordinaten merkt, sondern in der Regel den Text der auf den Buttons steht - also den Text den wir als "menschliche Benutzer" auch verwenden. Wenn da auf dem Button "Weiter" steht, dann steht typischerweise in dem MPR-Script auch so ein Befehl:
Code: Select all
GCW\\2\TBitBtn\Weiter|w45
Code: Select all
SAC\button\Weiter
MLC\
Code: Select all
STW\#32\Setup
' Das hier findet den Button im lokalisierten Fenster.
AFT\Weiter
MLC\
Was passiert nun, wenn wir unser Skript auf ein anderssprachiges OS umziehen?
Da steht ja "Suche den Button mit dem Text 'Weiter'."
Auf einem englischen OS würde da vielleicht "Next" stehen, statt "Weiter".
Dafür bietet der MPR verschiedene Lösungsmöglichkeiten (ODER-Pattern, Baumsuche, SWN\, Fenster-ID,Acc.-Engine).
Das einfachste ist oft, dass man den englischen und den deutschen Text angibt, und dazwischen ein "ODER" Zeichen "||" schreibt. Also so:
Code: Select all
SAC\button\Weiter||Next
MLC\
"Suche 'Weiter' ODER 'Next' bedeutet das dann.
Man findet dieses "ODER" Pattern in der Hilfe unter "Suchbegriffe". Und dort steht dann:
Was auch zeigt dass dieses Verfahren nicht nur für Fenstersuche sondern auch für viele andere Befehle zur Verfügung steht. Wenn man nun Texte hat, die gemeinsame Komponenten beinhalten hat man es einfacher. Zum Beispiel:1.4. Angabe von zwei Zeichenfolgen, verbunden durch "||" (z.B. "command||button" für die Fensterklasse bzw. den Suchbegriff). Dann wird nach einem Fenster gesucht, in dessen Klassenbezeichnung entweder die erste oder die zweite Zeichenfolge vorkommt ("thundercommandbutton" würde auch diese Vorgabe erfüllen).
Gleiches gilt für die Fensterbeschriftung.
"English Language Setup Program" und "Deutschsprachiges Setup Programm".
Hier kann man die Tatsache ausnutzen, dass man ja nie den gesamten Text benötigt sondern immer nur einen Teil davon. Und kann so einfach schreiben:
Code: Select all
STW\*\Setup
"Setup Version 3.24 german" und "Setup Version $.10 german" kann man stattdessen die UND Funktion verwenden um beide Fälle abzudecken. Sie wird in der Hilfe wie folgt erklärt:
Auf diese Weise lassen sich "Internationalisierte" Skripte komfortabel erstellen, wenn man weiß, was in den jeweiligen Sprachen auf den Buttons geschrieben steht.1.2. Angabe von zwei Zeichenfolgen, verbunden durch "&&" (z.B. "thunder&&button" für die Fensterklasse bzw. den Suchbegriff). Dann wird nach einem Fenster gesucht, in dessen Klassenbezeichnung beide Zeichenfolgen enthalten sind ("thundercommandbutton" würde diese Vorgabe erfüllen). Gleiches gilt für die Fensterbeschriftung.
Und dadurch dass der Robot jeweils mit ODER auf beide reagiert sind auch gemischtsprachige Skripte kein Problem.
Diese hat man, wenn man während dem Setup das in einer bestimmten Sprache abläuft, Dialoge bekommt, die vom OS stammen, welches ggf. eine andere Sprache haben kann.
So weit so gut. Hier noc hder Hinweis, dass die Befehle um AGR\ also auch unser AFT\ (oben) auch diese Patterns verstehen, und darüberhinaus noch weitere:
Code: Select all
Pattern Abkürzung Beispiel
{&DOCAPS:} {&0:} {&DOCAPS:ExPE} -> Gross-Kleinschreibung beachten.
{&OR:} {&1:} {Text1&OR:Text2} -> A oder B oder beides
{&XOR:} {&2:} {Text1&XOR:Text2} -> A oder B
{&AND:} {&3:} {Text1&AND:Text2} -> A und B; Reihefolge beliebig
{&ANDTHEN:} {&4:} {Text1&ANDTHEN:Text2} -> A dann B
{&FUZZY:} {&5:} {{Text1}&FUZZY:[value]} -> ungefähr A
{&TOLERANT:} {&6:} {{Text1}&TOLERANT:[value]} -> A zu min. X%
{&NOT:} {&7:} {&NOT:{Text1}} -> darf nicht vorkommen
{&EXACT:} {&8:} {&EXACT:Text1} -> genau A (Ohne GrossKlein)
{&NOTEXT:} {&9:} {&9:}
Zum Abschluß noch drei wichtige Hinweise zu dem Thema:Prinzipiell sind auch Verschachtelungen möglich, solange die Klammern korrekt gesetzt werden, also zum Beispiel:
{{{Text1&ORText2}&ANDTHEN:{Text1&ORText4}}&ANDTHEN:Text2}
Neu hinzugekommen ist der fortschrittliche "Tippfehler-Operator"; Beispiel:
{Text1&FUZZY:5}
Die Zahl hinter dem "&FUZZY:" gibt an, wie oft man sich vertippen darf, so dass der Text trotzdem erkannt wird.
Ebenso neu hinzugekommen ist der "TOLERANT" Operator. Hierbei wird eine %-Zahl angegeben, die die Wortähnlichkeit angibt, ab der Text der Bedingung entspricht oder nicht.
Beispiel:
{text1&TOLERANT:89}
{text1&TOLERANT:&DOCAPS:89}
1. Der MPR bietet auch Möglichkeiten Elemente textunabhängig zu lokalisieren. Dieses sind zum Beispiel: die Baumsuche, SWN\, Fenster-ID,Acc.-Engine. Diese (Baumsuche, SWN\) werden jedoch meistens nur genutzt um solche Elemente zu ermitteln, deren Text sich ändert.
2. Mehr Details zu den Such-Patterns finden Sie in der Hilfe unter "Suchbegriffe".
3. Es hat in älteren Versionen ein Problem gegeben, wobei ausgerechnet der oft genutzte GCW\-Befehl mit dem OR-Operator nicht funktioniert hatte. Dieser Fehler ist jetzt beseitigt worden. Wenn Sie das nutzen möchten, holen Sie sich das Neueste MPR Update.
Hier ein Beispielskript, mit dfem Sie testen können ob sie die aktuellste Version haben:
Code: Select all
EXX\?exepfad\testapp.exe
STW\#32770\$sp$sample application|w165
GCW\1000\1\but||zak\tonx||button1|w165
MLC\