ViaThinkSoft CodeLib
Dieser Artikel befindet sich in der Kategorie:
CodeLib → Programmierhilfen → InnoSetup
Es kann vorkommen, das gewisse Registryschlüssel in einer neuen Programmversion nicht mehr verwendet werden, diese aber trotzdem geheime Informationen wie z.B. Logindaten enthalten, die wir gerne bei der Installation der neuen Programmversion löschen möchten. Leider bietet die [installdelete] Sektion keine Löschung von Registryeinträgen an.
Es gibt nun folgende Möglichkeiten:
1. Pascalscripting: Wir erstellen ein Script, das den Registryeintrag währen der Installation löscht. Dies ist aber zu umständlich und es können unnötige Fehler auftreten.
2. Key durch das Programm löschen: Wir würden in diesem Falle einen Kompatibilitätsabschnitt in unser Programm einfließen lassen, der alte Daten löscht. Vorteil: Vor dem Löschen wäre hier noch Zeit für Migration von Daten. Nachteile: Der Programmcode und die Endausgabe wird länger aufgrund von Kompatibilitätsabschnitten aus vergangen Versionen; Das Zielprogramm könnte eventuell bei Vista keine Admin-Rechte haben, welche benötigt seien um z.B. HKLM-Einträge zu entfernen.
3. Einen Registry Key komplett löschen und neu erstellen, aber das neu erstellen zusätzlich unterdrücken - bewirkt eine Löschung
Es gibt nun folgende Möglichkeiten:
1. Pascalscripting: Wir erstellen ein Script, das den Registryeintrag währen der Installation löscht. Dies ist aber zu umständlich und es können unnötige Fehler auftreten.
2. Key durch das Programm löschen: Wir würden in diesem Falle einen Kompatibilitätsabschnitt in unser Programm einfließen lassen, der alte Daten löscht. Vorteil: Vor dem Löschen wäre hier noch Zeit für Migration von Daten. Nachteile: Der Programmcode und die Endausgabe wird länger aufgrund von Kompatibilitätsabschnitten aus vergangen Versionen; Das Zielprogramm könnte eventuell bei Vista keine Admin-Rechte haben, welche benötigt seien um z.B. HKLM-Einträge zu entfernen.
3. Einen Registry Key komplett löschen und neu erstellen, aber das neu erstellen zusätzlich unterdrücken - bewirkt eine Löschung
[Registry]
Root: HKCU; Subkey: "Software\MeineFirma\MeinProgramm\AlterSchlüssel\"; Flags: deletekey dontcreatekey
Daniel Marschall
ViaThinkSoft Mitbegründer
ViaThinkSoft Mitbegründer