在x64系统下的使用禁止注册表重定向

NSIS生成的安装程序都是32位的应用程序,所以在x64下运行时,所安装的文件会被自动转向,

如安装到C:WindowsSystem32目录下的文件会被安装到C:WindowsSysWOW64目录下。这对于有些软件是不方便的。

一个办法是重新编译NSIS的代码为64位,就是有点麻烦,而且需要大量的时间测试一下。利用简单的代码也可以解决类似的问题:

检测操作系统是否为x64系统

可以读环境变量PROCESSOR_ARCHITECTURE,该变量在32位系统为x86,在AMD的x64的机器和在Intel的x64机器上为AMD64,在安腾(Itanium)系统为IA64。可以使用下面的代码:

ReadEnvStr $Win64 PROCESSOR_ARCHITECTURE
StrCmp $Win64 "x86" lbl_Win32

禁止文件转向

调用Wow64EnableWow64FsRedirection函数可以禁止或恢复文件转向。如:

; 禁止

System::Call "Kernel32::Wow64EnableWow64FsRedirection(i 0)"

……

; 恢复

System::Call "Kernel32::Wow64EnableWow64FsRedirection(i 1)"
© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容