Loop Funktion für Robot Klasse

Dospanes

Mitglied
Hallo Leute,

Ich habe gerade erst angefangen ein bisschen zu skripten, da ich glaube, dass ich mir so einige Schritte am PC erleichtern kann.

Mein erstes Skript habe ich geschrieben um einen bestimmten Vorgang in einem Programm zu automatisieren. Nun möchte ich eine Loop Funktion einbauen und komme dabei nicht wirklich weiter. Grundlagenliteratur und diverse Foren habe ich schon gelesen, aber ohne Hilfe kann ich das nicht auf meinen Fall übertragen.

Das Skript basiert auf der Robot-Klasse und simuliert Mausklicks. Das Vorgehen sieht bei mir etwa so aus:

1. Maus fährt auf Button und klickt (eind Dropdownmenü geht auf)
2. Maus fährt nach unten und klickt in die erste Zeile
3. Maus fährt auf Speichern und klickt speichern

Danach soll der Vorgang wiederholt werden und dabei soll im zweiten Schritt, der Klick automatisch 17px weiter unten erfolgen. Schritt zwei sieht im Skript so aus:

[JAVA=42]r.mouseMove(120,389);
r.mousePress(InputEvent.BUTTON1_MASK);
r.mouseRelease(InputEvent.BUTTON1_MASK);
r.delay(500);[/code]

In der ersten Zeile sind die Koordinaten angegeben. Der Klick sollte nun führ Schritt 2 bei 120,405 passieren. Das ganze will ich dann 16x mal wiederholen (jedes mal 17px weiter unten). Wenn ich das geschafft habe, will ich auch noch die bennenung der gespeicherten datei für jeden schritt ändern. Aus der 50 [JAVA=42]r.keyPress(50);
r.keyRelease(50);[/code]

soll dann 51 werden uswusf.
Um das Grundprinzip zu schaffen würde das erstmal reichen. Ich wäre euch für einen kurzen hinweis sehr dankbar. 🙂

grüße!
 
ok. danke für die antworten. ich habe es jetzt so versucht, dass ich es mit einer Schleife den Code generieren lasse, der nachher die befehle nacheinander ausführt. Das hat zunächst auch ganz gut geklappt.

Das Problem ist lediglich, dass ich zwei Schleifen laufen lasse und diese sich dann miteinander multiplizieren und mir so viel zu viele Zeilen Code ausspucken.
Konkret habe ich folgende zwei Schleifen gemacht:
Java:
for(int i=389; i<=527; i+=16)
for(int a=0; a<=8; a+=1)

System.out.println( "CodeXYZ"+
i+
"CodeXYZ"+
a+
"CodeXYZ"
);

Ich habe versucht, dass er in der ersten Schleife mir die Pixelwerte erzeugt. Diese habe ich dann einfach in den restlichen Code eingebettet. Die zweite Schleife sollte mir die Dateibennenung generieren. Auch die habe ich in den restlichen Code eingebettet. Aber statt wie vorgesehen 9 Zeilen bekomme ich eben 81...
Hat jemand eine Idee wie ich das vermeiden kann?
 
Versuchs doch mal so:

Java:
int eingabe=50;

for(int yPos=389;yPos<(16*17+389);yPos+=17)
{
    r.mouseMove(120,yPos);
    r.mousePress(InputEvent.BUTTON1_MASK);
    r.mouseRelease(InputEvent.BUTTON1_MASK);
    r.delay(500);

    // Mach noch mehr
    
    r.keyPress(eingabe);
    r.keyRelease(eingabe);

    eingabe++;

}

[WR]Pseudocode !!![/WR]
Vllt ist es ja das was du willst....
 
Super! Vielen Dank. So hats funktioniert und die Lösung ist auch viel sinnvoller als Massen an Code zu generieren! Danach war zwar viel Feintuning mit den Delays nötig, aber vom Prinzip hab ich das jetzt sehr viel besser verstanden. merci!
 

Zurück
Oben