Programm Mehrere Schleifen durchführen

  • Hallo Zusammen!

    Ich habe leider nichts bisher gefunden, aber ich bin mir ziemlich sicher, dass so was geben sollte.

    Ich habe das Programm X. Damit öffne ich Datei, durchlaufe mit dem Programm wie im Visual Studio (damit werden was erzeugt). Dabei wird in Configurationsfenster eine neue Name fürdie Erstellung angepasst.

    Das gleiche tausend mal.
    Wie schaffe ich es automatisiert?

    Eine Lösung mit Mausclick möchte ich vermeiden, da der Zeitablauf für jeder Datei unterschiedlich sein kann.
    Kann ich Autoit Window Info, Autoit Record nutzen?

    Danke und Gruß

  • Hallo @tubsids,

    Du musst also Programm X starten. Kannst du beim Start die zu bearbeitende Datei schon als Parameter übergeben?
    Danach wird von diesem Programm eine Nutzereingabe erwartet?

    Mit dem AutoIt-Recorder wird das nicht klappen, weil du hier ja variieren willst. Also unterschiedlich lange zwischen Aktionen warten willst, weil es mal länger dauert und weil du unterschiedliche Namen eingeben willst. Da musst du dir selbst eine Routine überlegen.

    AutoIt Window Info wird nützlich sein, um das Fenster und die Controls zu identifizieren - falls das bei Programm X geht. (Du landest dann wohl doch bei ControlClick und ControlSend und WinWait und solchen Befehlen).
    Allerdings müsstest du noch feststellen können, wann eine Datei fertig bearbeitet ist und du mit der nächsten Bearbeitung starten kannst. Dann kannst du das sehr gut automatisieren.

    Mehr kann man ich mit den gegebenen Infos nicht sagen. Vielleicht bringt dich das ja weiter.

    Grüße autoiter

  • Hast du mal den Namen des Zielprogrammes? Egal wie unwahrscheinlich das ist das es ein anderer hat?

    Ansonsten genau wie @autoiter es geschrieben hat.
    Meistens ist die Vorgehensweise wie folgt:

    • Du startest aus AutoIt heraus das Zielprogramm - wenn möglich gleich mit Parameter (z.B. Datei die geöffnet werden soll)
      Gf. ist ShellExecute() die passende Funktion, der kannst du gleich die Zieldatei übergeben und die dazu gehörige Anwendung öffnet sich (z.B. Word bei .docx Dokumenten)
    • Dann machst du ein WinWait() bis das Programfenster geöffnet ist
    • ggf. holst du dir - in einer Endlosschreife While 1 ... Wend einen Zeiger auf eines der Controls (Button, Textfelder etc.) ControlGetHandle() und zum Beispiel ControlGetText() für den Test ob es geklappt hat. Wenn ja kommst du mit ExitLoop aus der Endlosschleife (in der du später auch noch ein Zeitlimit einbauen kannst)
    • Der Rest ist in der Regel dann

      • Mit ControlGetHandle() einen Zeiger auf das Element holen
      • ControlClick() um es anzuklicken (geschieht ohne das die Maus wirklich bewegt wird, Position etc. ist egal)
      • ControlSend() um Tasten oder Text zu senden
      • ggf. wieder auf neue Dialoge warten etc.