Hallo an Alle,
ich nochmal
Wollte fragen, ob jemand weiss, wie man das bewerkstelligt, dass die Dialoge nicht so dicht aufeinander folgen, sondern paar Sekunden gewartet wird, bis der nächste Dialog erscheint.
Danke schonmal im voraus.
Gruss
Aydin
PS: Verwende InstallShield Developer 8.01 MSI Basic Project.
This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
Dialogsequenzen
Started by
saaydin
, Jan 08 2004 14:16
5 replies to this topic
Posted 08 January 2004 - 17:35
Das ist ein recht ungewöhnlicher Wunsch, finde ich. Normalerweise will man doch eher das Gegenteil?
Stefan Krüger
InstallSite.org twitter facebook
Posted 09 January 2004 - 13:37
Ja das ist wohl wahr. Es ist wirklich ein ungewöhnlicher wunsch. Aber das hat ja auch seinen Grund
Ich möchte nämlich, dass bis zum Erscheinen des nächsten Dialogs genügend Zeit vergeht, damit einige meiner selbstdefinierten Aktionen, die über ein ControlEvent
aufgerufen werden, vollständig ausgeführt werden, bevor die nächste Aktion durch ein ControlEvent im darauf folgenden Dialog aktiviert wird.
Können Sie mir da vielleicht weiterhelfen?
Nochmals vielen Dank.
Gruss
Aydin
Ich möchte nämlich, dass bis zum Erscheinen des nächsten Dialogs genügend Zeit vergeht, damit einige meiner selbstdefinierten Aktionen, die über ein ControlEvent
aufgerufen werden, vollständig ausgeführt werden, bevor die nächste Aktion durch ein ControlEvent im darauf folgenden Dialog aktiviert wird.
Können Sie mir da vielleicht weiterhelfen?
Nochmals vielen Dank.
Gruss
Aydin
Posted 09 January 2004 - 14:21
Mir fällt leider keine Methode ein, jedenfalls nicht mit den eingebauten Möglichkeiten von Windows Installer. Eigentlich wäre eine nicht-modale Dialogbox dafür nett, aber das funktioniert nicht innerhalb einer Wizard-Sequenz, d.h. die Funktionalität des Back-Buttons geht dabei verloren.
Stefan Krüger
InstallSite.org twitter facebook
Posted 29 January 2004 - 09:12
Hallo,
wie hast Du die Custom Action denn eingestellt, Synchron (Exit Code prüfen )?
wie hast Du die Custom Action denn eingestellt, Synchron (Exit Code prüfen )?
Edited by aldi, 29 January 2004 - 09:12.
Posted 29 January 2004 - 10:41
Also der Gedanke einfach ein paar Sekunden zu warten, dann wird die CA schon fertig sein, ist prinzipiell der falsche Ansatz. Einerseits kann die CA ja schon nach 0,5 Sekunden fertig sein, dann muss der User unnötig warten. Andererseits klemmt vielleicht irgendetwas bei der Ausführung der CA und die gewählte Zeitspanne reicht nicht. Letzlich sind beide Fälle nicht zufriedenstellend. Desweiteren ist es doch immer irritierend, wenn man einen Button drückt und nichts passiert.
Aber für genau diesen Fall gibt es im Windows Installer ein ControlEvent namens 'SpawnWaitDialog'. Die Anwendung ist etwas trickreich, da für dieses ControlEvent die Logik der Condition genau verkehrt herum ist. Solange die Condition 'False' ist, wird der angegebene Dialog angezeigt - sobald die Condition auf 'True' wechselt, wird der Dialog ausgeblendet. Also, was brauchts:
1) Einen einfachen Dialog (z.B. 'WaitABit') mit dem Text 'Bitte warten, ich bin am ....', ohne jegliche Buttons
2) Die auszuführende CA ('MyCA'); diese muss erweitert werden um das Setzen eines Properties auf einen definierten Wert, z.B. Propname 'CaIstFertig' auf den Wert 'Y', desweiteren muss die CA asynchron laufen, sonst klemmt's
3) ControlEvents des z.B. 'Next' Buttons des Dialogs, der warten soll, müssen bearbeitet werden:
Aber für genau diesen Fall gibt es im Windows Installer ein ControlEvent namens 'SpawnWaitDialog'. Die Anwendung ist etwas trickreich, da für dieses ControlEvent die Logik der Condition genau verkehrt herum ist. Solange die Condition 'False' ist, wird der angegebene Dialog angezeigt - sobald die Condition auf 'True' wechselt, wird der Dialog ausgeblendet. Also, was brauchts:
1) Einen einfachen Dialog (z.B. 'WaitABit') mit dem Text 'Bitte warten, ich bin am ....', ohne jegliche Buttons
2) Die auszuführende CA ('MyCA'); diese muss erweitert werden um das Setzen eines Properties auf einen definierten Wert, z.B. Propname 'CaIstFertig' auf den Wert 'Y', desweiteren muss die CA asynchron laufen, sonst klemmt's
3) ControlEvents des z.B. 'Next' Buttons des Dialogs, der warten soll, müssen bearbeitet werden:
CODE |
Event Argument Condition [CaIstFertig] {} 1 DoAction MyCA 1 SpawnWaitDialog WaitABit CaIstFertig="Y" NewDialog NaechsterDialog 1 |
Klappt bei mir wunderbar z.B. bei der Suche nach im Netzwerk verfügbaren SQL-Servern.
h.teichert-ott