I'll try to explain again.
RequestExecutionLevel admin+HKLM+$ProgramFiles is a set (All users/machine install).
RequestExecutionLevel user+HKCU+$AppData/$LocalAppData is a set (Single user install).
You should not mix and match these. To choose a set at run-time you must use ShCtx instead of HKxx and manually set $InstDir.
Mixing RequestExecutionLevel admin with HKCU creates a installer that writes to the wrong HKCU when a non-admin runs your installer with "over-the-shoulder" UAC elevation. (
https://docs.microsoft.com/en-us/win...ccount-control)