Clean up 32-bit copy when installing 64bit (#18981)
Part of #16304
Summary of the issue:
When installing a 64-bit copy of NVDA, the 32-bit copy is not correctly cleaned up
Several instances of registry keys were being opened without being closed safely
Description of user facing changes:
The 32-bit copy should be cleaned up when installing the 64bit copy.
Description of developer facing changes:
None
Description of development approach:
Added new properties to NVDAState in NVDAState.py for retrieving x86-specific Start Menu folder, default install directory, and install directory, ensuring correct handling of 32-bit registry keys on 64-bit systems. [1] [2] [3]
Refactored unregisterInstallation in installer.py by breaking it into several helper functions, each responsible for unregistering a specific component (Ease of Access app, desktop shortcut, Start Menu, uninstall registry, app path registry, software registry) for both 64-bit and 32-bit registry keys.
Improved error handling and logging for missing registry keys, making it easier to diagnose uninstallation issues on different system architectures.
Safely close more registry keys