|
|||||||
![]() |
|
|
Thread Tools | Search this Thread | Display Modes |
|
|
#1 |
|
Junior Member
Join Date: Oct 2011
Posts: 2
|
Hi
I'm making an installer for a 32bit app installable on Windows XP 32bit and Seven 32 or 64bit. Under a 64bit Windows Seven, this app needs to be run in "Windows XP SP3 compatibility mode" due to a third party lib problem. Also, I run the installer in "admin" exec level (RequestExecutionLevel admin) because I write in the HKLM path. So in my nsis script I added the following lines: code: Which should avoid the Wow6432Node reflection and write directly into this specific key. But in Windows Seven x64 it doesn't: it still writes in HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers. Normally it shouldn't be a problem because, if I understand correctly, Windows should take care of the reflection. However, after installation, the compatibility mode for Windows XP SP3 isn't checked in MyApp.exe's properties. What am I doing wrong ? |
|
|
|
|
|
#2 |
|
Moderator
Join Date: Nov 2002
Location: Surrey, England
Posts: 8,434
|
You've got it the wrong way around. SetRegView 64 will ensure NSIS writes to the 64-bit registry (i.e. NOT Wow6432Node).
Stu |
|
|
|
|
|
#3 |
|
Major Dude
Join Date: Oct 2006
Posts: 1,892
|
To clarify: 32 bits applications should write to the Wow6432Node, NOT to native x64 registry. If you app is 64 bits however, then you can use setregview 64.
Also: "requestexecutionlevel admin" is not sufficient to enforce admin access. You also need to use the userinfo plugin to verify admin access in .onInit. (Reason being: requestexecutionlevel does nothing on WinXP, and also does nothing on win7 if UAC is turned off.) |
|
|
|
|
|
#4 | |||
|
Junior Member
Join Date: Oct 2011
Posts: 2
|
Quote:
Quote:
Quote:
Thanks a lot for your help !
|
|||
|
|
|
![]() |
|
|||||||
| Thread Tools | Search this Thread |
| Display Modes | |
|
|