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

Ausschliesen von Funktionsaufrufen während der Ins


1 reply to this topic

Snipey

Snipey
  • Full Members
  • 7 posts

Posted 18 April 2008 - 10:58

Hallo,

ich habe ein kleines Problem mit IS 2008 Prof. Ich habe ein Setupscript geschrieben wo nach der Installation zwei reg Dateien die neben dem Setup im selben Verzeichnis liegen aufgerufen werden sollen. Über eine IF Abfrage wird geprüft ob die .reg Datei vorhanden ist und eine Fehlermeldung ausgegeben bzw. die Datei aufgerufen.
Das funktioniert soweit ganz gut. Das Probelm ist das bei der Deinstallation des Programms das ganze nochmal durchgespielt wird. Es wird wieder auf die Datein geprüft und.....

Ich habe versucht mit Disable(LOGGING), Enable(LOGGING) das ganze aus der Deinstallation herauszunehmen, leider ohene Wirkung.

Hat jemadn eine Idee? Hier der Code:

function OnEnd()

STRING ErrorString1, ErrorString2;

begin

RegDBSetDefaultRoot (HKEY_LOCAL_MACHINE);
RegDBDeleteKey ( "SOFTWARE\\MeineFirma" );

ErrorString1 = "Stellen Sie sicher, dass diese Datei während der nächsten Installation dort vorhanden ist!\n";
ErrorString2 = "Diese Installation wird nun ohne Einfügen der Registrierungsinformationen abgeschlossen.\nFügen Sie nach Abschluss der Installation die Registrierungsinformation durch manuelles Doppelklicken \nder entsprechenden Registrierungsdatei hinzu.";

if ( Is ( FILE_EXISTS, "Datenbank.reg" )) then
Disable(LOGGING);
LaunchApp ("regedit.exe", "\Datenbank.reg");
Enable(LOGGING);
else
Disable(LOGGING);
SprintfBox (WARNING, "Datei nicht gefunden!","Die Datei Datenbank.reg konnte nicht im selben Verzeichnis wie das Setup gefunden werden!\n" + ErrorString1 + ErrorString2); //, svResult, nvResult);
Enable(LOGGING);
endif;

if ( Is ( FILE_EXISTS, "ODBC.reg" )) then
Disable(LOGGING);
LaunchApp ("regedit.exe", "\ODBC.reg");
Enable(LOGGING);
else
Disable(LOGGING);
SprintfBox (WARNING, "Datei nicht gefunden!","Die Datei ODBC.reg konnte nicht im selben Verzeichnis wie das Setup gefunden werden!\n" + ErrorString1 + ErrorString2);
Enable(LOGGING);
endif;

end;



Ich hatte vorher Disable(LOGGING) direkt nach beginn und Enable(LOGGING) erst vor end eingesetzt, auch ohne Erfolg.

Danke für jede Hilfe


aki

aki
  • Full Members
  • 14 posts

Posted 18 April 2008 - 12:04

Hallo Snipey,
schreib eine extra Funktion für dein Reg-Datei-Handling und ruf die z.B. in OnFirstUIAfter() bzw. auch OnUpdateUIAfter() auf, nicht aber in einem Handler wie OnEnd(), der von jedem Setup-Typ genutzt wird. Im Falle der Deinstallation wird der OnMaintUIAfter()-Handler aufgerufen, so dass die Funktion dort nicht aufgerufen wird.

aki