AutoIt-Script unterbrechen und wiederaufnehmen für Userinteraktion

  • Hallo,

    ich bin neu hier und habe meine ersten - mehr oder weniger unfallfreien ;) - Gehversuche mit AutoIt gemacht: in Form eines kleinen Scriptes zur Automatisierung eines CAD-Programmes.

    Der angedachte Ablauf ist folgender (in einer Schleife für tausende von Dateien):

    1.) Datei öffnen
    2.) Entscheidung durch User: "gut" oder "nicht gut"
    2a.) Im Falle von "gut": Erstellung eines HPGL-Plotfiles durch Selektion zweier diagonaler Bildschirmpunkte mit der Maus
    3.) weiter mit nächster Datei

    Ich habe die AutoIt-Version V3.2.4.9 und habe aber in der Hilfe nix gefunden. Hat jemand eine Idee für den Punkt 2a.) bei dem das Script für das Klicken der beiden Punkte unterbrochen werden soll. Aufgrund der verschiedenen Zeichnungsformate und ggf. außerhalb liegender Geometrie können die Punkte nicht automatisiert angeklickt werden.

    Vielen Dank für Eure Hilfe

    zafira

  • vielen dank für die prompte antwort!

    die msgbox ist nicht das problem, das bekomme ich hin. aber wie unterbreche ich das script? gibts da was in der 3.3.0.0?

  • Hallo Zafira

    Die Gute Nachricht: Ich hab ne Funktion gefunden und in meine Scripts eingebaut, mit der man per Tastentdruck (z.B. die Pause-Tasten) ein laufendes Script pausieren kann. Höchstwahrscheinlich lässt sich das ohne weiteres für deine Verwendungszwecke anpassen.
    Die schlechte Nachricht: Ich hab heut frei und das Script liegt im Büro.....

    Sobald ich morgen wieder im Büro bin schau ich, dass ich den Quellcode hochlade.

    Gruß

  • Herzlich willkommen.

    Als wichtigster Punkt: Lad dir die neue Version 3.3.0.0 herunter!
    Für den Rest: Bau dir doch einfach eine MsgBox ein.

    Wenn du uns dein bisheriges Skript zeigst, dann kann es dir vllt sogar einer einbauen.

    also: die V3.3.0.0 habe ich jetzt :) und die idee mit der msgbox brachte mich auf eine idee :) - werde heute mittag ausprobieren...

  • Zur Erklärung :
    Ich hab mir zwei Funktionen gefunden um mein Script zu pausieren oder gar ganz abzubrechen. Die jeweiligen Funktionen werden durch drücken eines Hotkeys ausgelöst, hier : "pause" und "Ende"-Taste.

    zu deinem Punkt 2a.: wenn gut dann drücken der Pause-Taste und manuelle Auswahl, ansonsten einfach weiterlaufen lassen.

    Ich hoffe das hilft dir.

    Global $Paused
    HotKeySet("{PAUSE}", "TogglePause")
    HotKeySet("{END}", "Terminate")

    Func TogglePause()
    $Paused = NOT $Paused
    While $Paused
    sleep(100)
    ToolTip('Script is "Paused"',0,0)
    WEnd
    ToolTip("")
    EndFunc

    Func Terminate()
    Exit 0
    EndFunc

  • Hallo zafira007,

    Zitat

    die msgbox ist nicht das problem, das bekomme ich hin. aber wie unterbreche ich das script? gibts da was in der 3.3.0.0

    eine msgbox unterbricht doch das Skript automatisch (falls du nicht TIMEOUT setzt) und wartet auf eine Benutzereingabe,

    mfg (Auto)Bert

  • Hallo,
    keine Msgbox, den damit wird zwar das Script zwar pausiert, allerdings ist keine Eingabe/Abfrage der Bildschirmpunkte möglich.
    Also einfach eine Gui "Bitte nach markieren der beiden Punkte mit "OK" den Plot ausführen oder mit "Weiter" die nächste Zeichnung auswählen" erstellen und dann in z.B. einer while/wend Schleife die beiden Punkte aus der Zeichnung auswählen bzw nächste Datei auswählen.
    Ich habe das jetzt so verstanden, daß das Script den gesamten Vorgang automatisieren soll bis auf den Klick auf die beiden Punkte der Diagonalen.

    ciao
    Andy

    • Offizieller Beitrag

    Moin,

    der Ablauf ist doch klar, oder?

    Ein schleife in der die Funktionen aufgerufen werden

    1) Datei einlesen
    2) Pausieren
    3) Punkte abfragen

    Zusätzlich würde ich in eine ini Datei loggen, welche Datei du zuletzt verarbeitet hast. Dann kann das Skript beim nächsten Start sofort mit der nächsten Datei beginnen.

    Mega

    P.S.: Ich würde nach dem Einlesen der ersten Datei einen Tooltip machen, dass es geklappt hat, dann per Hotkey die Fkt zum Einlesen der Punkte starten und dann den nächsten hotkey zum Weitermachen.