2 Aktionen behindern sich.

  • Hallo
    Ich hab folgendes Problem.

    Erstemal der Code.

    Spoiler anzeigen
    [autoit]

    While 1

    [/autoit] [autoit][/autoit] [autoit]

    $coord = PixelSearch( 9, 69, 284, 106, 0x857C57)
    If @error Then
    Send("{3}")
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    $coord = PixelSearch( 374, 682, 414, 694, 0x7C654F)
    If @error Then
    Send("{2}")
    Sleep ( 2000 )
    Send ("{1}")
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    WEnd

    [/autoit]

    Der erste Teil funktioniert wie gewünscht. Er regiert immer auf die Veränderung im Searchbereich.
    Der 2te Teil reagiert auch wunderbar auf die Änderungen im Searchbereich.
    Aber es passiert dass sie beide GLEICHZEITIG reagieren und das soll nicht sein.

    Gibt es irgendwie eine Möglichkeit dass der 2te Teil erst dann reagiert wenn der erste fertig ist?
    Bzw. wenn er seine Aktion durchgeführt hat?

  • [autoit]

    while 1
    do
    $coord = PixelSearch( 9, 69, 284, 106, 0x857C57)
    If @error then Send("{3}")
    until $coord<> 0
    $coord=0
    do
    $coord = PixelSearch( 374, 682, 414, 694, 0x7C654F)
    If @error Then
    Send("{2}")
    Sleep ( 2000 )
    Send ("{1}")

    [/autoit][autoit][/autoit][autoit]

    EndIf
    until $coord<>0
    wend

    [/autoit][autoit][/autoit][autoit][/autoit]


    habs nicht getestet..

    [align=center]Meine Werke mit der Irrlicht Engine
    AutoIt Picture Viewer Dreidimensionaler Bildbetrachter
    Mr Bubble 3D Neue Interpretation des Flashklassikers Bubble trouble


  • Der erste Teil funktioniert wie gewünscht. Er regiert immer auf die Veränderung im Searchbereich.
    Der 2te Teil reagiert auch wunderbar auf die Änderungen im Searchbereich.
    Aber es passiert dass sie beide GLEICHZEITIG reagieren und das soll nicht sein.

    Gibt es irgendwie eine Möglichkeit dass der 2te Teil erst dann reagiert wenn der erste fertig ist?
    Bzw. wenn er seine Aktion durchgeführt hat?

    Da AutoIt eine Interpretierte Sprache ist sind gelichzeitige Aktionen gar nicht möglich: Es wird eine Aktion nach der anderen ausgeführt. Es kann aber sein dass die zu steuernde Anwendung zu langsam ist, dann musst du einen Sleep($x) einbauen. $x musst du abschätzen oder durch empirische Messungen herausbekommen.
    Damit wir aber nicht weiter im Nebel stochern solltest du die Anwendung benennen die du damit steuer willst. Meist gibt es bessere Lösungsmöglichkeiten als deine eingeschlagene,

    mfg autoBert