![]() |
#1 |
Junior Member
Join Date: Apr 2010
Posts: 3
|
64-Bit Registry Read + Manifest (Dummy Needs Help!)
After reading dozens of posts in this forum and looking through the NSIS documentation, I have a problem I can't seem to solve. Very simply, I have an application that was written for 32-bit installation and now desire to install under 64-bit O/S (Win 7) as well. The code below works fine under 32-bit XP, but does not work under 64-bit Win7:
StrCpy $Acad "SOFTWARE\Autodesk\AutoCAD\R18.0\ACAD-8001:409" ReadRegStr $5 HKLM $Acad "ProductName" MessageBox MB_OK "Acad = $Acad 5 = $5" StrCpy $Acad "SOFTWARE\Microsoft\Windows\CurrentVersion" ReadRegStr $5 HKLM $Acad "ProductName" Actually, I am able to read the Windows current version under either and that makes it all the more mysterious to me. I would think that simply inserting 'SetRegView 64' before this code would make it work fine in 64-bit, but that doesn't seem to do the trick. Also, I'm not finding lots of help on the manifest. Is it really just that I need to use NotePad to create a file named 'MyInstaller.exe.manifest' according to the format noted in http://msdn.microsoft.com/en-us/library/bb756929.aspx and place in the same folder as my NSIS installer exe? Like I said, kind of feeling like a dummy right now. Thanks in advance for any help offered. |
![]() |
![]() |
![]() |
#2 |
Moderator
Join Date: Jun 2002
Location: ${NSISDIR}
Posts: 5,548
|
Put RequestExecutionLevel in your script, that will create the manifest
IntOp $PostCount $PostCount + 1 |
![]() |
![]() |
![]() |
#3 |
Junior Member
Join Date: Apr 2010
Posts: 3
|
I tried putting 'RequestExecutionLevel admin' in the Application section and got an error. On the plus side, I've gotten past the registry problems using SetRegView 64. I had tried putting this in .oninit and still had problems, but they may have been related to some other things happening on the machine. Now, I'm using it right before I read the registry in each function and things are working OK. The WinVer.nsh and x64.nsh includes also worked magic in my app.
|
![]() |
![]() |
![]() |
#4 |
Moderator
Join Date: Jun 2002
Location: ${NSISDIR}
Posts: 5,548
|
well, you still should put RequestExecutionLevel in your script, just put it as the first line in your script
IntOp $PostCount $PostCount + 1 |
![]() |
![]() |
![]() |
|
Tags |
64-bit, manifest, registry |
Thread Tools | Search this Thread |
Display Modes | |
|
|