in-der-lernphase
Goto Top

Softwareverteilung AutoIT Skript wird nicht beendet

Hallo,

ich habe für eine Software zur Installation ein AutoIT Skript erstellt. Das Skript funktioniert und die Software wird auch richtig installiert.

Wenn ich nun, dieses Skript in einer Tasksequenz anwende, läuft das Skript bis zu einem bestimmten Fenster, das nicht im Vordergrund liegt. Also wird das Skript nicht abgeschlossen. Das Fenster liegt hinter dem Dialog "Installation Progress".

Meine Frage wäre: Kann ich das schon im AutoIT Skript abfangen und wie? Oder kann ich den Dialog "Installation Progress" minimiert in die Taskleiste legen?

Im Voraus vielen Dank!

Content-ID: 586555

Url: https://administrator.de/forum/softwareverteilung-autoit-skript-wird-nicht-beendet-586555.html

Ausgedruckt am: 23.12.2024 um 02:12 Uhr

144705
Lösung 144705 10.07.2020 aktualisiert um 17:51:04 Uhr
Goto Top
Die richtigen Funktionen benutzen face-wink
WinWait
WinActivate
WinWaitActive
By the way : Die AutoIt Funktionen wie ControlClick etc. haben auch den Parameter "title" und "text" denen man explizit ein Fenster mitgeben kann dann müssen Fenster auch nicht zwingend im Vordergrund liegen um sie fern zu steuern.
aqui
aqui 10.07.2020 um 17:37:08 Uhr
Goto Top
Probelme ?
144705
144705 10.07.2020 aktualisiert um 17:38:24 Uhr
Goto Top
Zitat von @aqui:

Probelme ?
Wat für Helme face-big-smile? Ich? Nee...
144705
144705 10.07.2020 aktualisiert um 17:54:42 Uhr
Goto Top
Ich würde die Installation lieber mit einem Snapshot Capture-Tool aufzeichnen und dann ein MSI draus machen statt diese Fernbedienorgie zu benutzen, das ist ohne BlockInput() definitiv nicht das wahre !
In-der-Lernphase
In-der-Lernphase 10.07.2020 aktualisiert um 18:09:09 Uhr
Goto Top
@aqui
Probelme ? Sorry kleiner Tippfehler!!!!

@144705
Die Funktion WinWaitActive benutze ich schon für das Fenster. An dieser Stelle bleibt das Skript hängen. Aber nur beim Verteilen.

Welches Capture-Tool kannst du unter Windows 10 empfehlen? Hatte mit solchen Tools unter Windows 10 noch keinen richtigen Erfolg!
144705
144705 10.07.2020 aktualisiert um 18:59:37 Uhr
Goto Top
Zitat von @In-der-Lernphase:

@144705
Die Funktion WinWaitActive benutze ich schon für das Fenster. An dieser Stelle bleibt das Skript hängen. Aber nur beim Verteilen.
Nun ja wenn du nur wartest und es nicht aktiv nach vorne holst kannst du ja ewig warten. Das lässt sich ja alles per @ error und Timeout abfangen. Aber wie gesagt muss ein Fenster nicht zwingend im Vordergrund liegen damit man Befehle dahin senden kann, siehe dazu Kommentar oben.

Welches Capture-Tool kannst du unter Windows 10 empfehlen? Hatte mit solchen Tools unter Windows 10 noch keinen richtigen Erfolg!
Hatten wir gerade erst hier
MSI-Packager ähnlich zu Scalable Smartpackager gesucht
Ich persönlich nutze AdminStudio Repackager und auch VMWare Thinapp.
mayho33
mayho33 11.07.2020 um 01:30:52 Uhr
Goto Top
Wieso nicht die Silent-Switches verwenden die dein Setup eventuell anbietet und AutoIt einfach vergessen? 98% aller Produkte die als Setup vorliegen haben einen halbwegs intelligenten Installer.

Welches Produkt? Setup. Exe /? -? -help oder ähnliches schon versucht?
In-der-Lernphase
In-der-Lernphase 11.07.2020 aktualisiert um 20:32:16 Uhr
Goto Top
Zur Erklärung: Das Programm gehört zu den restlichen zwei Prozent bzw. ist eine Kombination aus Beiden. Das Setup ist von InstallShield.

Ich verwende normalerweise immer die Silent-Switches, wie auch hier. Ich habe mit setup.exe /r eine *.iss Datei erstellt. Leider wird dabei nicht alles aufgezeichnet. z.B. kommt während der Installation einen Lizenzabfrage "KEY" oder "DEMO" und zum Schluss ein Hinweisfenster. setup.exe /? liefert keine weiteren Switche.

Aus diesem Grund AutoIT, um beide Dinge abzufangen.

Lösung für das Hinweisfenster: WinWait, WinActivate, WinWaitActive hatte ich keinen Erfolg, da der Fenstertext nicht erkannt wird. ProzessWait und ProzessClose brachte Erfolg.

Ein Repackager (kostenlos) wie im Forum genannt, scheitert an der MB Grenze --> das Programm ist 1,8GB groß.
mayho33
mayho33 13.07.2020 um 11:03:41 Uhr
Goto Top
Zitat von @In-der-Lernphase:

Zur Erklärung: Das Programm gehört zu den restlichen zwei Prozent bzw. ist eine Kombination aus Beiden. Das Setup ist von InstallShield.


Wenn es von Installshield ist, sollte im Hintergrund in den %temp%-Folder eine oder mehrere MSIs entpackt werden. Die kannst du ebenfalls verwenden. Musst sie dann nur in Reihenfolge bringen. ProcMon von Sysinternals hilft dir dabei das zu sehen und auch so einige Switches die angewendet werden.
Wie es allerdings bei einem so angestaubten Installer ist, bin ich mir gerade nicht sicher.

Der Silent-Switch ist /S oder /SILENT für das Setup. Funktioniert halt leider nicht immer, weil manche Distris glaube sie müssten unbedingt was "verbessern" ohne das dem Endkunden mitzuteilen.

Ich verwende normalerweise immer die Silent-Switches, wie auch hier. Ich habe mit setup.exe /r eine *.iss Datei erstellt.

/r veranlasst das Setup nur die Einstellungen während er Installation zu speicher. Versuche mal zusätzlich den /a-Switch zu verwenden.

Setup.exe -a -r -f1C:\setup.iss

Es weden nur Dialoge gespeichert die auch "beantwortet" werden. Eventuell vorher mal Umschalten zwischen "KEY" und "DEMO"
In-der-Lernphase
In-der-Lernphase 13.07.2020 aktualisiert um 22:16:21 Uhr
Goto Top
Super, teste ich.

@mayho33
Leicht abweichende Frage vom Thema: Wie machst du das mit Treibern mit setup.exe, die keine Silent-Switche haben? Wie bekomme ich den Installer raus?
mayho33
Lösung mayho33 14.07.2020 um 14:31:32 Uhr
Goto Top
Zitat von @In-der-Lernphase:

Leicht abweichende Frage vom Thema: Wie machst du das mit Treibern mit setup.exe, die keine Silent-Switche haben? Wie bekomme ich den Installer raus?

Setup entpacken, je nachdem welcher Installer mit /extract usw.

Dann in die Sourcen gehen und die Inf nebst Cab usw. weg kopieren.

Danach mit Pnputil -i-a <path>\*. Inf installieren, bzw. Pnputil /Add-Driver *. Inf /install

Wenn keine Cab dabei ist, kannst du davon ausgehen, dass der Treiber nicht signiert ist. Schlecht unter W10.

Alles weitere würde diesen Thread etwas stark ausreizen.

Viel Spaß dabei!