2012-10-29 17 views
5

Wiem, jak skonfigurować Inno, aby tworzyć/manipulować kluczami rejestru i/lub wartościami podczas instalacji i wiem, że podczas deinstalacji można usunąć wartość, klucz itd. Ale czy jest jakiś sposób, aby Inno Setup rzeczywiście zmieniła wartość klucza po zakończeniu procesu odinstalowywania?Inno Setup: Czy istnieje jakiś sposób ustawienia wartości klucza rejestru podczas deinstalacji?

Ustawienia, które tworzę, zmieniają wartość klucza dword używanego przez inną aplikację do wartości równej 1, co oznacza, że ​​jest on zainstalowany, a po usunięciu tej aplikacji potrzebuję przywrócić wartość do 0, wskazując, że jest ona usunięta . Czy to możliwe, bez usuwania faktycznego klucza/wartości?

Odpowiedz

8

Można użyć konkretnego RegWrite funkcję (DWord, Binary, StringValue, etc) w procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep); z usPostUninstall lub usDone

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

Dzięki, to rzeczywiście działa. Należy jednak zauważyć, że RegWriteStringValue jest dla wartości typu REG_SZ. Tak więc w moim przypadku muszę użyć RegWriteDWordValue, która jest, jak sama nazwa wskazuje, dla wartości DWord. Postaw mnie na właściwej drodze, więc dziękuję za tonę! – jmwhitman

+0

Bez problemu. Wspomniałem 'DWord',' Binary', 'String' we wprowadzeniu. Ponieważ nie wiedziałem, który z nich potrzebujesz, podałem przykład z 'String'. – RobeN

Powiązane problemy