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

Funktionsweise von UninstallApplication()


6 replies to this topic

Lehrling1988

Lehrling1988
  • Full Members
  • 49 posts

Posted 05 April 2007 - 13:42

Hallo,

ich habe eine Installation mit Install Shield 12 erstellt.
In dieser Installation prüfe ich, ob eine ältere Version des zu installierenden Programms vorhanden ist.
Sollte dies der Fall sein, so hatte ich vor die ältere Version mit UninstallApplication(..) zu deinstallieren.
Als Übergabeparameter habe ich die GUID der älteren Programmversion aus einer Datei ausgelesen und mit Hilfe einer Variable (svLine) übergeben. Da ich der Meinung war, dass ich die CMD-Line(zweiter Übergabeparameter) nicht brauche, habe ich da einfach einen Leerstring reingegeben.

Nun zu meinem eigentlichen Problem:
Als dritten Übergabeparameter habe ich "LAAW_OPTION_WAIT" übergeben, was nach meiner Übersetzung bedeutet, dass die Installation wartet bis die Deinstallation beendet ist.(Korrigiert mich falls das nicht stimmt)
Auf jeden Fall macht er das nicht. Die Installation geht einfach weiter und die Deinstallation wird trotzdem gestartet.

Zur Funktion "checkRegistry":
gibt 1 zurück wenn der gesuchte eintrag gefunden wurde.
gibt -1 zurück wenn der gesuchte eintrag nicht gefunden wurde.#

CODE

    if( UninstallApplication( svLine, "", LAAW_OPTION_WAIT) >= ISERR_SUCCESS )then
//Wenn der Schluessel noch vorhanden ist, dann wurde das
// Programm nicht ordnungsgemaess deinstalliert
     if( checkRegistry("SOFTWARE\\Company\\MyProgram", "Version") = 1 ) then
      MessageBox(@ID_DEINST_ERROR/*"Bei der Deinstallation ist ein Fehler aufgetreten."*/,SEVERE);
      abort;
     endif;// checkRegistry
    endif; //  end Unistallapplication


Ich hoffe ich habe das ganze verständlich erklärt und freue mich über jede Hilfe.

Danke schon mal im Voraus!!

gr.
Robert
Man lernt nie aus...darum bin ich immer noch ein Lehrling und werde es immer bleiben...

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 13 April 2007 - 16:00

Evtl. musst du für die gestarete Deinstalaltion noch den Parameter /SMS übergeben. setup.exe startet möglicherweise das Setup nur und beendet sich sofort. Mt /SMS sollte setup.exe warten.

Lehrling1988

Lehrling1988
  • Full Members
  • 49 posts

Posted 23 April 2007 - 07:24

hallo,

danke erst mal für die antwort. leider ist mir dieser übergabeparameter nicht bekannt. ich weiß also nicht wo ich den einsetzen muss und eine LAAW_OPTION_SMS gibt es nicht. bitte um genauere erklärung.

danke noch mal!
Man lernt nie aus...darum bin ich immer noch ein Lehrling und werde es immer bleiben...

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 23 April 2007 - 09:14

LaunchAppAndWait ( szProgram, szCmdLine, nOptions );

Lehrling1988

Lehrling1988
  • Full Members
  • 49 posts

Posted 24 April 2007 - 09:43

ok ich habe es versucht aber es ändert nichts...er startet sie deinstallation und macht dann mit der installation weiter. mich wundert das ein bisschen weil es mit der install shield version 11 ohne probleme geklappt hat und das ohne irgendwelche cmd parameter. kann es vllt ein das dieser cmd parameter nur für LaunchAppAndWait() gilt und nicht für UninstallApplication()???
hmm...wie auch immer ich weiß da nicht mehr weiter...

gr.
Robert
Man lernt nie aus...darum bin ich immer noch ein Lehrling und werde es immer bleiben...

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 24 April 2007 - 17:59

/SMS gilt für Setups die mit alten InstallShield-Versionen erstellt wurden (z.B. Professional 5)

Lehrling1988

Lehrling1988
  • Full Members
  • 49 posts

Posted 11 April 2008 - 09:16

Hallo,

die Deinstallation die hier gestartet wird, ist von einem Setup welches mit IS 11 bzw schon mit IS 12 erstellt wurde.

gr.
Lehrling
Man lernt nie aus...darum bin ich immer noch ein Lehrling und werde es immer bleiben...