programm an einer bestimmten Stelle fortsetzten

  • Hallo zusammen,


    um mein problem zu erklären muss ich wohl ein bisschen weiter ausschweifen.

    Also wir haben in der Schule einen roboter gebaut der ursprünglich in Delphi (Pascal) programmiert werden sollte. Das ganze hat nicht wirklich funktioniert und alles was ich jetzt habe ist ein programm von unserem Lehrer in dem ich ein wert eintragen kann und den servo diese position anfahren lassen kann.


    Um den roboter zu programmieren zu können hab ich angefangen mit AutoIt3 ein Programm zu schreiben das werte in das programm unseres Lehrers einträgt und diese bestätigt.

    Soweit sogut, nun mein eigentliches problem, wenn ich während mein programm daten an die steuerung unseres lehrers sendet das aktuelle fenster wechsle schreibt mein programm planlos in das aktuelle fenster rein um das zu verhindern hatte ich vor während der Bewegung des roboters ständig abzufragen ob die steuerung von unserem lehrer das aktuelle fenster ist.

    wenn das nicht der fall ist soll mein programm dahin springen wo die ganzen case sachen (weiß leider nicht wie mann das nennt, halt das was unmittelbar nach dem "#EndRegion ### END Koda GUI section ###" von dem in Koda erstellten fenster steht kommt).

    Genau das hab ich mit den ideeen zu diesem oder ähnlichen problemen noch nicht gefunden.


    Ich fände es toll wenn jemand der ein ähnliches problem schonmal gelöst hat oder ne gute idee dazu hat

    sie mir zukommen lässt.


    Also danke schonmal im vorraus

    Der Rote

  • dein programm ist etwas unübersichtlich ... aber ich denke, mit diesem beispiel von mir lässt sich leicht dein Thema behandeln:

    Spoiler anzeigen
    [autoit]


    Hotkeyset("{ESC}","end")
    Func end()
    Exit
    EndFunc

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

    run("notepad.exe")
    WinWaitActive("Unbenannt - Editor")

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

    Func schreibe_in_Editor()
    If check_ob_editorfenster_aktiv() = 0 Then Return 1
    Send("Test" & @CRLF)
    If check_ob_editorfenster_aktiv() = 0 Then Return 1
    Send("AutoIt" & @CRLF)
    EndFunc

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

    Func schreibe_in_Editor2()
    If check_ob_editorfenster_aktiv() = 0 Then Return 1
    Send("Hallo" & @CRLF)
    If check_ob_editorfenster_aktiv() = 0 Then Return 1
    Send("peethebee" & @CRLF)
    EndFunc

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

    ; Koda Gedöns
    ; mehr Koda Gedöns

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

    While 1
    ; Stelle XXX
    While 1
    if schreibe_in_Editor() = 1 then ExitLoop
    sleep(500)
    if schreibe_in_Editor() = 1 then ExitLoop
    sleep(500)
    if schreibe_in_Editor2() = 1 then ExitLoop
    sleep(500)
    if schreibe_in_Editor2() = 1 then ExitLoop
    sleep(500)
    if schreibe_in_Editor() = 1 then ExitLoop
    sleep(500)
    WEnd
    msgbox(0,"","Springe an Stelle XXX (Anfang), da Editor-Fenster nicht aktiv")
    sleep(1000)
    WEnd

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

    Func check_ob_editorfenster_aktiv()
    If WinActive("Unbenannt - Editor","") Then Return 1 ; siehe Window Titles and Text (Advanced) im Handbuch
    Return 0
    EndFunc

    [/autoit]