2012-10-29 3 views
5

Ich weiß, wie Inno Setup Registrierungsschlüssel und/oder Werte bei der Installation erstellen/bearbeiten und ich weiß, dass Sie einen Wert, einen Schlüssel usw. bei der Deinstallation löschen können. Aber gibt es eine Möglichkeit, Inno Setup tatsächlich den Wert eines Schlüssels zu ändern, wenn der Deinstallationsvorgang abgeschlossen ist?Inno-Setup: Gibt es eine Möglichkeit, einen Registrierungsschlüsselwert beim Deinstallieren festzulegen?

Das Setup, das ich erstelle, ändert den Wert eines DWORD-Schlüssels, den eine andere Anwendung verwendet, auf einen Wert von 1 und gibt an, dass es installiert ist. Wenn diese Anwendung entfernt wird, muss der Wert auf 0 zurückgesetzt werden . Ist das möglich, ohne den eigentlichen Schlüssel/Wert zu löschen?

Antwort

8

Sie spezifische RegWrite Funktion können (für DWord, Binary, StringValue, usw.) in procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep); mit usPostUninstall oder usDone

procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep); 
begin 
    if CurUninstallStep = usPostUninstall then 
    RegWriteStringValue(HKEY_CURRENT_USER, 'Software\My Company\My Program', 
     'UserName', ExpandConstant('{sysuserinfoname}')); 
end; 
+0

Danke, das funktioniert in der Tat. Es sollte jedoch beachtet werden, dass RegWriteStringValue für Werte vom Typ REG_SZ ist. In meinem Fall muss ich RegWriteDWordValue verwenden, was, wie der Name schon sagt, für DWord-Werte ist. Setzen Sie mich auf den richtigen Weg, also vielen Dank! – jmwhitman

+0

Kein Problem. Ich habe in der Einleitung 'DWord',' Binary', 'String' erwähnt. Da ich nicht wusste, welches du brauchst, habe ich ein Beispiel mit 'String' gegeben. – RobeN

Verwandte Themen