automat. drücken auf "start" funktioniert nur manchmal

  • Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist. Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist. Hallo Leute!

    Ich bin neu hier und ein blutiger AUTOIT Anfänger und bitte um Hilfe bei einem wahrscheinlich lächerlichen Problem: Ich starte automatisch 4 Instanzen eines Programmes aus autostart (Temperatur Feuchte Aufzeichnung). Es erfordert, dass dann noch auf einen Button "Start" gedrückt wird und ausgewählt wird zwischen "Datei überschreiben", "Datei fortsetzen" oder "Abbrechen"). Mein AUTOIT soll auf "Datei fortsetzen" drücken:


    WinWait("Recorder: Verbindung zum COM1 hergestellt.","",30)
    ControlClick("Recorder: Verbindung zum COM1 hergestellt.","Start", "Button19")
    ControlClick("In Datei...","",1130)
    WinWait("Recorder: Verbindung zum COM2 hergestellt.","",30)
    ControlClick("Recorder: Verbindung zum COM2 hergestellt.","Start", "Button19")
    ControlClick("In Datei...","",1130)
    WinWait("Recorder: Verbindung zum COM3 hergestellt.","",30)
    ControlClick("Recorder: Verbindung zum COM3 hergestellt.","Start", "Button19")
    ControlClick("In Datei...","",1130)
    WinWait("Recorder: Verbindung zum COM4 hergestellt.","",30)
    ControlClick("Recorder: Verbindung zum COM4 hergestellt.","Start", "Button19")
    ControlClick("In Datei...","",1130)


    Manchmal startet es 3 Instanzen, manchmal nur 2, aber nie alle 4. Was ist da faul? Ein screen shot vom GUI des Programmes anbei (hab es von einem PC an dem kein Sensor hängt, deshalb steht oben nicht "Recorder: Verbindung zu COM ....." sondern "Rekorder: Keine Verbindung...) .

    Vielen Dank für Tipps, D-E

  • Hallo dieter-erich,

    lass doch einfach den optionalen TimeOut bei WinWait weg, dann pausiert dein Skript garantiert bis die entsprechende Instanz getartet wurde

    Edit warum du den Aufruf des Programmes nicht mitgepostet hast verstehe ich nicht, üblicherweise wird das Programm unmittelbar vor WinWait gestartet.

    mfg (Auto)Bert

  • Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist. Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist. Hi (Auto)Bert,

    vielen Dank für den Tipp, hat aber leider nicht funktioniert! Einmal startet COM 4 nicht, einmal COM 2 und COM 3. Kann es vielleicht daran liegen, dass zuerst mal ein Fenster kommt wo man "START" drücken muss und dann eins mit "Datei Überschreiben"? Wie müsst ich das dann machen? Offensichtlich funktioniert es trotzdem, aber irgendwie nicht zuverlässig.

    HG D-E

    • Offizieller Beitrag

    Probiers mal so:

    Spoiler anzeigen
    [autoit]

    WinWait("Recorder: Verbindung zum COM1 hergestellt.")
    ControlClick("Recorder: Verbindung zum COM1 hergestellt.","Start", "Button19")
    WinWait("In Datei...")
    ControlClick("In Datei...","",1130)
    WinWait("Recorder: Verbindung zum COM2 hergestellt.","")
    ControlClick("Recorder: Verbindung zum COM2 hergestellt.","Start", "Button19")
    WinWait("In Datei...")
    ControlClick("In Datei...","",1130)
    WinWait("Recorder: Verbindung zum COM3 hergestellt.","")
    ControlClick("Recorder: Verbindung zum COM3 hergestellt.","Start", "Button19")
    WinWait("In Datei...")
    ControlClick("In Datei...","",1130)
    WinWait("Recorder: Verbindung zum COM4 hergestellt.","")
    ControlClick("Recorder: Verbindung zum COM4 hergestellt.","Start", "Button19")
    WinWait("In Datei...")
    ControlClick("In Datei...","",1130)

    [/autoit]

    wenn das nicht funktioniert muss evtl. bei ControlClick("In Datei...","",1130) noch ein Kriterium für Text eingetragen werden. Vllt. haben ja die Dateien unterschiedliche Namen oder heißen die alle message.dat.

  • Hallo dieter-erich,

    Zitat

    Auszug aus dt. Hilfe: WinWait
    --------------------------------------------------------------------------------
    Pausiert das Script bis das angegebene Fenster existiert.

    WinWait ( "title" [, "text" [, timeout]] )

    Parameter

    title Der Titel des Fensters, auf das gewartet werden soll. Hier: Mehr Infos zur Titelangabe.
    text [optional] Der Text des Fensters, auf das gewartet werden soll.
    timeout [optional] Maximale Unterbrechungsdauer nach der fortgefahren wird, auch wenn das Fenster noch nicht existiert.

    Bin absolut ratlos, da das AutoIT-Skript notfalls bis zum St. Nimmerleinstag warten müsste, wenn der TimeOut wegelassen wird ?(
    Oder hast du das Skript anderweitig beendet?
    Poste doch bitte mal das komplette Skript und falls du den Link zur Online-Doku des Gerätes hast poste den bitte auch, dann brauch ich nicht danach suchen.

    mfg (Auto)Bert

  • Hi Bernd 670!


    Dein Skript hat auf Anhieb funktioniert! Muss noch mehrmals testen, aber bin zuversichtlich. Vielen Dank! Gibts eigentlich irgendwo eine Beispielsammlung oder so was? Meine Fragestellung war ja nicht wirklich was sehr Ungewöhnliches, aber ich hab nirgends ein ähnliches Beispiel gefunden! Sollt es doch nicht immer funktionieren, melde ich mich wieder.

    Herzl. Grüsse und Vielen Dank für die Hilfe, D-E

  • Hallo Leute,

    leider war ich zu vorschnell: Das Skript von Bernd670 funktioniert auch nur manchmal. Entweder bleiben einige der Instanzen einfach hängen und waren auf einen Tastendruck, oder alles läuft durch ohne Probleme, oder drücken auf "START" bei einer der hängengebliebenen Instanzen löst aus dass alles durchläuft. Ich habe den Eindruck, dass das Skript einfach an verschiedenen Stellen zufällig hängen bleibt oder drüberläuft ohne den Tastendruck auszuführen. Kann man das irgendwie rausfinden? Gibts einen "DEBUG MODE" oder so was Ähnliches? Jedenfalls, klappt es leider doch nicht! Vielen Dank für Lösungsvorschläge!

    D-E

  • Hi Progandy,

    funktioniert leider auch nicht! Keine Änderung, eine Instanz bleibt immer dort stehen, wo man auf START oder STOP drücken muss, und das ist nicht immer dieselbe! Hat noch wer eine Idee?

    Vielen Dank, D-E