Hallo zusammen, zuerst mal Entschuldigung für die lange Frage!
Ich muss mit AutoIt (interne) Software automatisch installieren und zeige dabei gleichzeitig das Bild des Produktes an, solange die Installation dauert.
Das alles funktioniert einwandfrei!
Doch ich möchte es etwas verbessern! Bisheriges Vorgehen ist das folgende (Pseudocode):
While 1
- Bilder in GUI mittels GUICtrlSetImage updaten
- Prüfen ob Programm schon vorhanden und korrekt installiert ist
- Wenn nicht, Silent Installation starten
WEnd
Das Problem ist nun, dass das Updaten des Bilder "zu lange" dauert. Nämlich dann, wenn das Programm schon vorhanden ist, könnte ich viel schneller weitergehen.
Mein Programm wird momentan weltweit eingesetzt und wird alle 30 Minuten ausgeführt. Es werden 152 Programme installiert / überprüft.
Die 30 Minuten kommen nicht von mir, sondern das sind Konzernvorgaben! Auch ist Vorgabe, dass sie "irgendwelche Bilder" während des Installation / Prüfung sehen wollen.
Ich habe mal die Bildanzeige ausgeschaltet und das Programm war in 4.8 Sekunden fertig! (Wenn nichts installiert werden musste.)
Mit den 152 (lokal gespeicherten) Bildern geht es ca. 32 Sekunden.
Leider kann ich nicht im Hintergrund (ohne GUI) überprüfen, ob ein Programm installiert werden muss, und erst dann die GUI anzeigen.
Begründung: Es könnte ja sein, dass die erste und die letzte Installation fehlt. Dann würde das GUI kurz aufgehen, installieren, verschwinden und kurz darauf wieder erscheinen.
Das verwirrt die Benutzer. Sie wollen sehen, dass die Bilder kurz "durchfliegen".
Ich habe mir gedacht, dass ich die GUI in eine seperate EXE Datei auslagere und irgendwie per StdoutRead kommuniziere, welches Bild (und Text) angezeigt werden soll.
Aber wie kann ich in der GUI-Exe den StdoutRead benutzen, wenn das Installationsprogramm selber die GUI-Exe aufruft?
Der Vorteil wäre, dass wenn es länger dauert, bis das Bild gesetzt ist, dass dann gewisse Bilder einfach übersprungen und nicht angezeigt werden. Im GUI-Exe würde ich einfach immer wenn Zeit vorhanden, den StdoutRead Stream lesen. Und wenn er dann gewisse Bilder "übersieht" wäre mir das recht!
Für Vorschläge und Inputs wäre ich dankbar!
Veronesi