2012-10-29 32 views
5

我知道如何讓Inno安裝程序在安裝時創建/操作註冊表項和/或值,我知道您可以在卸載時刪除值,密鑰等。但是有沒有什麼辦法可以讓Inno Setup在卸載過程完成時真正改變密鑰的值?Inno安裝程序:卸載時是否有任何方法設置註冊表項值?

我創建的安裝程序將另一個應用程序使用的DWORD鍵的值更改爲1,表示已安裝該值,當此應用程序被刪除時,我需要將該值恢復爲0,表明它已被刪除。這是可能的,而不刪除實際的鍵/值?

回答

8

可以在procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);使用特定RegWrite功能(DWordBinaryStringValue等)與usPostUninstallusDone

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

謝謝,這確實有效。但是應該注意的是RegWriteStringValue用於REG_SZ類型的值。所以在我的情況下,我需要使用RegWriteDWordValue,顧名思義,DWord值。請把我放在正確的道路上,非常感謝! – jmwhitman

+0

沒問題。我在前面提到'DWord','Binary','String'。由於我不知道你需要哪一個,我用'String'舉了一個例子。 – RobeN

相關問題