Progress Bar ignoriert die Installation

  • Hallo zusammen,

    ich habe ein Problem mit der Installation eines MSI Paketes und eines gewünschten Installations Balken.
    Ich starte die MSI mit ShellExecute, da die Installation mit Run abbricht. Da der Installer keinen silent paramter mag, verstecke ich im Anschluß das "Windows Installer" Fenster.
    Nun sollte die Progress Bar erscheinen (Was sie auch tut) und den Installationsstatus darstellen. Die Progress Bar aber läuft einmal durch und beendet sich bevor die eigentliche Installation abgeschlossen wurde.
    Wie bekomme ich das ganze am besten gelöst?
    Hier der Ausschnitt meines Scriptes:

    Gruß
    Maggus

  • ShellExecute gibt nicht die PID zurück, du kannst die Abbruchbedingung der Schleife daher nicht per processexists realisieren. ShellExecute gibt bei Erfolg immer 1 bei Misserfolg 0 zurück. Nun rufst du vor jedem Schleifendurchgang Processexists auf, die Schleife läuft solange das Ergebnis dieser Abfrage True ist, also ungleich 0. Da du aber eine ungültige PID (1) an Processexists übergibst gibt dir processExists eine 0 zurück (Prozess existiert nicht). Eine 0 bedeutet False, daher wird die Schleife bereits vor dem ersten Durchlauf abgebrochen.

    Lösung: verwende run()

    Das geht nicht? Klar geht das, sollte in etwa so ausschaun:

    [autoit]

    run('msiexec "C:\test\IBM SPSS Statistics 21.msi" /qb LICENSETYPE=Network ....')

    [/autoit]
  • Danke für die Hilfe.
    Bekam mit Run immer nur das Parameterfenster vom msiexec. Habe mich aber nochmal vor die Klammern und co. gesetzt und Fehler gefunden.
    So schaut's nun aus und funktioniert auch.

    Was mich noch stört ist das nach dem Aufruf der msi kurz das Fenster aufpoppt bis es wieder beendet wurde.
    Ich habe die silent Installation, dieses MSI Paketes, nicht anders bewältigen können.
    Gibt es da evtl. noch eine andere Möglichkeit?

    Gruß
    Maggus