Skip to content
⌘ NSIS Forum Archive

64-Bit Registry Read + Manifest (Dummy Needs Help!)

4 posts

cascadtx#

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.
cascadtx#
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.
Anders#
well, you still should put RequestExecutionLevel in your script, just put it as the first line in your script