Man kann mit dem ACMP AutoMATE fast in jedem Befehl durch Verwendung der Suchpatterns 2 Internationalisierungen vornehmen, zum Beispiel:
Code: Alles auswählen
AFO\42\Deutscher Name||English nameZum Beispiel:
Code: Alles auswählen
AGR\42\Deutscher Name&OR:English name&OR:Spanisch nombre etc.Wird AGR\zum Suchen von Buttons eingesetzt und nur eine begrenzte Anzahl Buttons stehen zur Verfügung, könnte man europäische Sprachen sogar mit einem FUZZY-Logic-Pattern erfassen:
Wenige Zeichen wie hier:
Code: Alles auswählen
AGR\42\Name&FUZZY:3AGR\ ersetzt auch den ACMP AutoMATE -Befehl AFO\ in den Fällen, wo eine einfache und schnelle Suche benötigt wird, die so schnell wie möglich ausgeführt werden soll.
Dies ist zum Beispiel auf großen, sich ändernden HTML-Seiten oder in ASP-Anwendungen der Fall.
Da AGR\ intern eine andere Pattern-Engine benutzt wird, müssen hier andere Jokerzeichen und Wildcards verwendet werden als in den übrigen ACMP AutoMATE -Befehlen. Auch deshalb kann AGR\ in der Version 8.5 nicht mit der "gelben Liste" aufgezeichnet werden, sondern muss manuell codiert werden.
Die Syntax lautet etwa:
Code: Alles auswählen
AGR\[wartezeit in s|]Role\Name\Value\Number[\Flag][:Label]Ob das gesuchte Element gefunden wurde, kann mit dem Befehl IIF\ (= If Instruction Failed)festgestellt werden.
Um mit AGR\ auf das Erscheinen eines Elementes auf einer WEB-Seite zu warten würde man so vorgehen:
Code: Alles auswählen
Beispiel:
CAW\ieframe\theo
BOP\www.fa2.de
WSC\
SWP\12,2|775,932
HTV\$$MYW
:Lab
' Fenster lokalisieren
SCW\$$MYW
AGR\42\Login
IIF\
TDL\100
 GOTO Lab
EIF\
' Fortfahren, wenn Element vorhanden ist
MMV\Code: Alles auswählen
:Lab
TDL\120
' Fenster lokalisieren
SCW\$$MYW
AGR\42\Login\\\:Lab
' Fortfahren wenn Element vorhanden ist
MMV\Das AGR\ verwendet anstelle der ACMP AutoMATE -Standard-Suchmuster diese weiterentwickelten Suchmuster:
Code: Alles auswählen
{&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 egal
 {&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:} 
 {&t:}     - Always True
 {&f:}     - Always FalseCode: Alles auswählen
{Text1&OR:Text2&OR:Text2&OR:Text2&OR:Text2... usw.}Dadurch sind beliebig viele Internationalisierungen im gleichen Script denkbar.
Das {&EXACT:Text1}-Pattern ersetzt das ACMP AutoMATE Standard-Suchmuster "Text1&&" (&& am Ende).
Prinzipiell sind auch Verschachtelungen möglich, solange man die Klammern korrekt setzt,
Also zum Beispiel:
Code: Alles auswählen
{{{Text1&ORText2}&ANDTHEN:{Text1&ORText4}}&ANDTHEN:Text2}Beispiel:
Code: Alles auswählen
{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 ein %-Zahl angegeben, die die Wortähnlichkeit angibt, ab der Text der Bedingung entspricht oder nicht.
Beispiel:
Code: Alles auswählen
{Text1&TOLERANT:89}Beispiele:
Code: Alles auswählen
' Ein Button mit der Beschriftung "Senden" soll lokalisiert werden, es genügt die Angabe eines Teils
' der Beschriftung um den Button zu lokalisieren
STW\opusapp\ - nachricht|w30
GCW\0\3\#32770\*|w30
AGR\43\Sende
MMV\
' Der Button heißt "Senden" ohne Groß- Kleinschreibung zu unterschieden.
' Ein Button mit der Beschriftung "Senden" soll lokalisiert werden
' Würden wir hier auch nur "Sende" angeben (ohne "n") würde der Button nicht gefunden!
STW\opusapp\ - nachricht|w30
GCW\0\3\#32770\*|w30
AGR\43\&EXACT:Senden
MMV\
' In diesem Beispiel wollen wir dass auch Gross- Kleinschreibung berücksichtigt wird.
' Dazu verwenden wir den "&DOCAPS: -Operator.
' Würden wir hier &EXACT:&DOCAPS:SEnden angeben als Parameter, würde der Button nicht gefunden!
STW\opusapp\ - nachricht|w30
GCW\0\3\#32770\*|w30
AGR\43\&EXACT:&DOCAPS:Senden
MMV\
' Nun wenden wir uns einer WEB-Seite zu, sicherlich ein Haupteinsatzgebiet für AGR\
' Hier suchen wir einen Text (Role 42), der die Worte "Hardware" und "Journal" enthält.
' Dabei achten wir nicht auf Gross-/Kleinschreibung
CAW\ieframe\theo
BOP\www.fa2.de
WSC\
SWP\12,2|775,932
AGR\42\Hardware&AND:Journal
MMV\
' Allerdings würde im vorigen Beispiel auch ein Text "Journal der aktuellen Hardware" gefunden werden.
' das wollen wir nicht, daher nehmen wir den &ANDTHEN: Operator.
' Nun muss der zweite Term nach dem ersten im Text stehen!
CAW\ieframe\theo
BOP\www.fa2.de
WSC\
SWP\12,2|775,932
AGR\42\manager&ANDTHEN:magazin
MMV\Diese Operatoren können auch aneinandergereiht werden, zum Beispiel wenn wir "Computer Partner News" suchen:
Code: Alles auswählen
CAW\ieframe\theo
BOP\www.fa2.de
WSC\
SWP\12,2|775,932
AGR\42\ompu&ANDTHEN:ner&ANDTHEN:ews
MMV\
' Oder auch mit Berücksichtigung der Gross- und Kleinschreibung im jeweiligen Term:
AGR\42\ompu&ANDTHEN: &DOCAPS:ner&ANDTHEN:&DOCAPS:ews
oder auch komplexer:
AGR\42\{&DOCAPS:Computer&AND:{ompu&ANDTHEN:&DOCAPS:ner&ANDTHEN:&DOCAPS:ews}}
' Die AGR\Suchpattern kann man abkürzen, um Schreibarbeit zu sparen.
' Im Fall oben würde das so aussehen, wäre allerdigns schlechter verständlich.
AGR\42\{&0:Computer&3:{ompu&4:&0:ner&4:&0:ews}}