BARRIER
9th November 2003 05:05 UTC
Problem with uninstall
Hello,
I' currently experiencing problems in beta 2.04 (last download) with MUI_UNPAGE_INSTFILES and the basic MUI demo.
On uninstall, once clicked on the button Uninstall, the windows disappear after a short time, I dont get the Finish button and the HKCU key is not removed in the register.
If I comment the MUI_PAGE_CONFIRM and the MUI_UNPAGE_INSTFILES lines in the code, the uninstall process uses the "old" style and works as usual with the progress bar and the finish button.
What am I doing wrong ?
Thank you for your help,
BB
Joost Verburg
9th November 2003 11:22 UTC
Because of a but in yesterday's System.nsh, uninstaller auto close was always set to true, even if there is no finish page.
This has been fixed. However, the uninstaller sections were still executed, so you have probably made a typo in the registry key removal code.
BARRIER
9th November 2003 11:36 UTC
Joost,
There is not a typo, and found the problem arises only with the multilanguage example.
I've compiled the Welcomefinish example and it works properly.
I will try to find the offending code in the multilanguage example which prevent deleting the registry key.
My candidate is !insertmacro MUI_UNGETLANGUAGE in the un.oninit function, but I have still to do more tests.
I will report the results later...
Thank you for your support !
BB
Joost Verburg
9th November 2003 11:47 UTC
This macro can't prevent you from deleting a registry key, they only this is does is setting $LANGUAGE.
BARRIER
9th November 2003 13:50 UTC
Hello,
You are right.
In fact, the problem comes from :
!insertmacro MUI_LANGDLL_SAVELANGUAGE
at the end of the macro MUI_FUNCTION_INSTFILESPAGE called in MUI_PAGE_INSTFILES called in MUI_FUNCTION_INSTFILESPAGE macro.
The function write the registry with the langage value after the desinstallation process is done. It should be disabled when the function is called from a desinstall.
So, to prevent this without alter the system code, I commented the lines in the script :
;Remember the installer language
!define MUI_LANGDLL_REGISTRY_ROOT "HKCU"
!define MUI_LANGDLL_REGISTRY_KEY "Software\Modern UI Test"
!define MUI_LANGDLL_REGISTRY_VALUENAME "Installer Language"
and writing myself the key inside the install section.
Of course, during uninstall, I also have :
DeleteRegKey HKCU "Software\Modern UI Test"
instead
DeleteRegKey /ifempty HKCU "Software\Modern UI Test"
to force deletion.
Hope it can help,
BB
Joost Verburg
9th November 2003 14:31 UTC
Thank you for reporting this issue. Fixes for your problems will be uploaded soon.
BARRIER
9th November 2003 14:59 UTC
Thank you/Merci Joost and congratulations for your job.
BB