Bild-Automatisierung

Hi,

heute einmal etwas zum Thema Automatisierung.
Es gibt ja schon einige Tools zum Automatisieren, aber nicht viele mit Bild-Erkennung.

Hier kommt die Software Sikuli bzw. SikuliX ins Spiel.
Mit dieser könnt Ihr über Screenshots eure Software oder Prozesse automatisieren. Und das Beste: Es funktioniert Dank Java auf jedem Betriebssystem.

Ich habe dies z.B. mit dem Browser-Spiel Goodgame Empire zum Abholen der Steuern getestet. Diese werden sobald fertig abgeholt und dann wieder ein neuer durchlauf geordert. Um dies genauer zu zeigen hier das Sikuli-Script

patterns = (Pattern("1405884495038.png").similar(0.80),Pattern("1405884506644.png").similar(0.80),"1405884531009.png",Pattern("1406315875293.png").similar(0.78),Pattern("1406315785603.png").similar(0.80),Pattern("1406316973856.png").similar(0.82),Pattern("1406372148504.png").similar(0.80),Pattern("1406379490536.png").similar(0.82))
closetaxeswindow=Pattern("1406317936903.png").targetOffset(162,-17)
newtaxesscreen=Pattern("1406315290793.png")
gettaxes=Pattern("1405884531009.png")
startnewtaxescollection=Pattern("1406315337449.png").targetOffset(-19,0)
retrievetaxes=Pattern("1406316179768.png")
closenewtakesscreen=Pattern("1406318736692.png").targetOffset(146,-47)

def clickexists(p):
    click(exists(p, 0))

while True:
    for p in patterns:
        m = exists(gettaxes, 0)
        if m:
            click(m)
            wait(2)
            clickexists(retrievetaxes)
            wait(2)
            clickexists(closetaxeswindow)
            wait(2)
            clickexists(newtaxesscreen)
            wait(2)
            clickexists(startnewtaxescollection)
            wait(2)
            clickexists(closenewtakesscreen)
        else:
            clickexists(p)

und einmal nun das ganze als Bild:

An sich könnt ihr dies mit jeder beliebigen Software machen.
Vielleicht möchtet ihr dies ja als Grundlage nutzen 🙂

Gruß, Matthias