Jump to content


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.
Photo

Deinstallation


7 replies to this topic

ANo

ANo
  • Full Members
  • 179 posts

Posted 01 December 2006 - 16:46

Hallo, ich benötige etwas Hilfe:

Ich möchte bei der Deinstallation mit einer Messagebox
den Benutzer darauf hinweisen, die Anwendung nur in besonderen Fällen zu entfernen.

In der Systemsteuerung ist nur der "Remove"-Button aktiv.
Wenn dieser gedrückt wird, wird die Meldung angezeigt:
"Are you sure you want to remove XYZ from your computer? (Yes/No)"

Diese Messagebox werde ich vielleicht nicht umgehen können.

Wenn der Benutzer mit "yes" bestätigt, sollte eine weitere Messagebox angezeigt werden.


Dazu habe ich zwei CAs:
A_Show_UnInstallMessage
nach CA: LaunchConditions
Bedingung: REMOVE~="ALL"
Damit wird die Messagebox angezeigt, auch mit Yes/No
bei Yes: Bedingung CANCEL_UNINSTALL="1"
und bei No: Bedingung CANCEL_UNINSTALL=""
AC_CancelUnInstall
Type: 275
nach CA: A_Show_UnInstallMessage
Bedingung: CANCEL_UNINSTALL<>"1"
Ziel: lokalisierebare Eigenschaft: Canceld uninstallation.

Es funktioniert, dass meine Messagebox angezeigt wird. Und wenn damit die Deinstallation
abgebrochen wird, funktioniert dies auch.

Aber zum Abschluß gibt es von seitens des Windows Installers
eine Fatal Error-Meldung. Und diese stört.

Wo liegt da der Fehler? Oder muß man gänzlich einen anderen Weg gehen?

André

ANo

ANo
  • Full Members
  • 179 posts

Posted 04 December 2006 - 09:35

Gibt es keinen Weg außer den Maintanence-Dialog zu benutzen?
Dieser wird nicht angezeigt wenn nur der "Remove"-Button aktiv ist.
Man kann es auch so einstellen, daß nur der "Change"-Button angezeigt wird, aber dies ist nicht das Ziel.

Ich möchte schon, daß in der Systemsteuerung nur der "Remove"-Button aktiv ist, aber dies mit einer eigenen Information für den Benutzer hinterlegen.

Ist das machbar?

MfG
André

ANo

ANo
  • Full Members
  • 179 posts

Posted 04 December 2006 - 12:23

Ich habe mal ein Logfile erstellt.
Vielleicht kann mir jemmand helfen.

Gruß André

Attached Files



maniac

maniac
  • Full Members
  • 94 posts

Posted 04 April 2007 - 14:54

Hallo ANo,

habe mir daran auch schon die Zähne ausgebissen. Aus meier Sicht hast Du keine Chance die Fatal Meldung zu unterdrücken. Das kurisose ist, dass wenn ich das Setup mit /x {Paketcode} entferne und dann mein meiner Frage "Nein" klicke es kein Problem zu geben scheint. Nur übers Softwareapplet geht das nicht, da kommt immer FATAL ERROR. Ich mach das dann immer so, das der "Entfernen-Button" ausgeblendet ist und bilde diese Logik der Frage über den "Ändern"-Button ab.

MegDino

MegDino
  • Full Members
  • 47 posts

Posted 12 December 2008 - 12:05

Hallo!

Eine CA vom Typ 275, bzw. Typ 19 (die 275 ergibt sich nur durch Addition weiterer Flags) hat den Sinn, die Installation oder Deinstallation im Fehlerfall abzubrechen. Sie liefert an den Installer einen Fehlercode, der diesen zu besagter Meldung am Ende veranlasst.

Ich schlage vor, eine "normale" CA zu verwenden (Typ 1 oder 257, oder einfach nicht Typ 19 setzen) und eine Function aufzurufen, die nach Bedarf eine Meldung ausgibt und mit "return -1" endet. Diese CA muss dann nur noch so aufgerufen werden, dass der Exit-Code geprüft wird. Die Deinstallation bricht wortlos ab, wenn nicht "0" zurück kommt.

Ich hoffe, das hilft, werde es jetzt selbst mal testen.

Gruß
Meg

Nachtrag: Okay, hilft nicht! Auch wenn ich eine CA mit -1 beende, meldet der Installer am Ende einen schwerwiegenden Fehler! dry.gif

Edited by MegDino, 12 December 2008 - 13:09.


Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 12 December 2008 - 12:19

QUOTE
Aus meier Sicht hast Du keine Chance die Fatal Meldung zu unterdrücken. Das kurisose ist, dass wenn ich das Setup mit /x {Paketcode} entferne und dann mein meiner Frage "Nein" klicke es kein Problem zu geben scheint.
Der Unterschied ist, dass die Systemsteuerung das Setup im "Basic UI" Modus ausführt, d.h. es werden die Windows Installer-eigenen Dialoge verwendet, nicht die selbst erstellten. /x dagegen führt das Setup im Silent-Modus aus, deshalb kein Dialog am Ende.

MegDino

MegDino
  • Full Members
  • 47 posts

Posted 12 December 2008 - 13:25

So, ich hab's nochmal versucht und Erfolg gehabt:

Wenn meine "cancelDeinstall()" Funktion den ErrorCode "ERROR_INSTALL_USEREXIT", bzw. 1602 zurückgibt, geht der Installer davon aus, dass der Anwender den Vorgang abgebrochen hat und bringt KEINE abschließende Fehlermeldung mehr! biggrin.gif

Edited by MegDino, 12 December 2008 - 13:26.


ANo

ANo
  • Full Members
  • 179 posts

Posted 12 January 2009 - 17:09

Hallo MegDino, Du hast dafür eine Scriptfunktion geschrieben, oder?

Gruß
André