Page 1 of 1

Springen zu einer Programmzeile

Posted: 07 Mar 2018, 12:16
by Benjo85
Ich habe mal eine Frage.....
Ich habe ein kleines Programm, welches mit der Loop Parse einige Datensätze in einem Programm prüft.
Dieses Programm reagiert teils mit unterschiedlichen Verzögerungen auf meine Anfrage... mal 8 Sekunden, mal 5 Minuten....
Das einfachste wäre nun, wenn ich mehrere Bedingungen prüfe in einer Loopfunktion, bis eine der möglichen Reaktionen erfolgt ist und sobald dies eintrifft, sollte das skript erst weiterlaufen....

vereinfacht gesagt:

Eine Loop-Funktion mit mehreren Optionen. Sobald eine der Bedingungen erfüllt ist, muss der Loop durchbrochen werden.....
Wenn XY= rot -> springe zu Programmzeile 123
Wenn XY= blau -> springe zu Programmzeile 123

Hat jemand von euch eine Idee?

Bislang habe ich einfach einen festen Wert mit sleep definiert, der meistens hinhaut, aber dennoch durch teils viel längere Verzögerungen des Programms zu fehlern führt.....

VG

Re: Springen zu einer Programmzeile

Posted: 07 Mar 2018, 14:14
by BoBo
Was repräsentieren denn diese farben, eine farbänderung irgendwelcher fensterbestandteile ... ??
Wie heißt die Anwendung? Kann man das script mal sehn?

Re: Springen zu einer Programmzeile

Posted: 07 Mar 2018, 14:21
by cocobanana
Denke das einfachste wäre eine normal if abfrage in der schleife...
oder die kurz version mit until zb.

Code: Select all

loop {
	sleep 10
} until  ... < -- deine Bedingung um die Schleife zu verlassen...

Re: Springen zu einer Programmzeile

Posted: 08 Mar 2018, 06:08
by Benjo85
Irgendwo habe ich jetzt einen Denkfehler....

Code: Select all

^7::
Loop
{
sleep, 50
PixelGetColor, Farbe, 850, 105, RGB
}
until %Farbe% <> 0x3F627F

MsgBox, Seite verlassen
Unabhängig davon, ob die Farbe an dieser Stelle zu finden ist, kommt meine MsgBox in meinem Testskript....

Re: Springen zu einer Programmzeile

Posted: 08 Mar 2018, 06:17
by Benjo85
Problem gelöst :)

Code: Select all

^7::
Loop
{
sleep, 50
PixelGetColor, Farbe, 850, 105, RGB
If Farbe <> 0x3F627F 
Goto Label
}

Label:
MsgBox, Seite verlassen
Funktioniert hervorragend.... Mal schauen, ob das nun auch in komplexen Situationen passt :)

Re: Springen zu einer Programmzeile

Posted: 08 Mar 2018, 06:41
by BoBo

Code: Select all

^7::
   Loop {
   Sleep, 50
   PixelGetColor, Farbe, 850, 105, RGB
   } Until (Farbe != 0x3F627F)
   MsgBox, Seite verlassen
   Return
Until erwartet expression schreibweise!