Ich habe in einer Installation bei der Deinstallation ein script ausgeführt, welches sofort ausgeführt wurde. Allerdings muss es unter Windows 7 definitiv im Systemkontext ausgeführt werden, weshalb ich es nun verzögert ausführen muss.
In dem Script greife ich auf Session.Property("INSTALLDIR") zu. Dies geht nun nicht mehr, da die Variable leer ist.
Nun versuche ich verzweifelt, irgendwie diese Information in mein Script zu kriegen. Lt den Anleitungen im Netz und im Forum habe ich dazu:
- Eine CA angelegt, die die Eigenschaft "CustomActionData" auf den Wert "[INSTALLDIR]" setzt.
- Diese CA auf Position 3601 in der Install Execute Sequenz geschoben (Nach RemoveFolders)
- Die CA die ich ausfuehren will auf 3602 gesetzt und dort versucht über Session.Property("CustomActionData") den Wert zu erhalten.
Dies funktioniert nicht, der Wert ist leer.
Im uninstall log sehe ich zwar, dass die CA auf 3602 ausgeführt wird, aber nicht direkt vorher die CA auf 3601, die wird deutlich vorher im uninstall ausgeführt. Der Wert wird dort aber richtig gesetzt.
Frage: Wie kriege ich das INSTALLDIR in die CustomAction ODER wie kriege ich das script sofort im Systemkontext ausgeführt?
CustomActionData in verzögertem Script
-
- Beiträge: 29
- Registriert: 06.10.2010, 09:52
-
- Administrator
- Beiträge: 1092
- Registriert: 29.02.2004, 15:51
- Wohnort: Hamburg
- Kontaktdaten:
Re: CustomActionData in verzögertem Script
Edit: Text gelöscht, Lösung siehe unten.
Mit freundlichen Grüßen,
AKApplications, Andreas Kapust
AKApplications, Andreas Kapust
-
- Beiträge: 29
- Registriert: 06.10.2010, 09:52
Re: CustomActionData in verzögertem Script
Die Info hab ich umgesetzt und bin soweit erfolgreich, als dass die Execute CA auch aufgerufen wird.
Nur ist der Wert von Session.Property("CustomActionData") immer noch leer.
Im Script fuer Process hab ich die Aufrufe:
Session.Property("CustomActionData") = Session.Property("INSTALLDIR")
Session.DoAction("Process")
eingefügt.
Im script Execute lese ich über
Dim strPathName = Session.Property("CustomActionData") den wert aus, aber er bleibt leer.
Rechtschreibfehler, Grossklein Schreibung hab ich ueberprueft, das passt alles
Im Uninstall log sehe ich auch den Aufruf:
Executing op: ActionStart(Name=removeInstallDir,,)
d.h es wird nix uebergeben.
Nur ist der Wert von Session.Property("CustomActionData") immer noch leer.
Im Script fuer Process hab ich die Aufrufe:
Session.Property("CustomActionData") = Session.Property("INSTALLDIR")
Session.DoAction("Process")
eingefügt.
Im script Execute lese ich über
Dim strPathName = Session.Property("CustomActionData") den wert aus, aber er bleibt leer.
Rechtschreibfehler, Grossklein Schreibung hab ich ueberprueft, das passt alles
Im Uninstall log sehe ich auch den Aufruf:
Executing op: ActionStart(Name=removeInstallDir,,)
d.h es wird nix uebergeben.
-
- Administrator
- Beiträge: 1092
- Registriert: 29.02.2004, 15:51
- Wohnort: Hamburg
- Kontaktdaten:
Re: CustomActionData in verzögertem Script
Guten Tag!
Sorry, mein Fehler.
In VBSkript läuft es etwas anders als in C.
Der Ablauf ist folgender:
Definieren Sie zwei CAs.
Eine E01_Process "Eigenschaft setzen" (Typ51) :
Eigenschaft = E01_Execute
Wert= [INSTALLDIR]
InstallExecuteSeqence z. B. Pos 6104
Und eine E01_Execute als VBSkript in Ressource und Verzögert, Systemkontext (wenn nötig)
InstallExecuteSeqence z. B. Pos 6105
Beispiel anbei.
Sorry, mein Fehler.
In VBSkript läuft es etwas anders als in C.
Der Ablauf ist folgender:
Definieren Sie zwei CAs.
Eine E01_Process "Eigenschaft setzen" (Typ51) :
Eigenschaft = E01_Execute
Wert= [INSTALLDIR]
InstallExecuteSeqence z. B. Pos 6104
Und eine E01_Execute als VBSkript in Ressource und Verzögert, Systemkontext (wenn nötig)
InstallExecuteSeqence z. B. Pos 6105
Beispiel anbei.
- Dateianhänge
-
- CA_VBScript.zip
- (30.45 KiB) 886-mal heruntergeladen
Mit freundlichen Grüßen,
AKApplications, Andreas Kapust
AKApplications, Andreas Kapust
-
- Beiträge: 29
- Registriert: 06.10.2010, 09:52
Re: CustomActionData in verzögertem Script
Vielen Dank, die Loesung funktioniert nun so wie beschrieben