最新消息:

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

nsis 永恒心锁 1809浏览 0评论

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)"
永恒心锁,版权所有丨如未注明,均为转载丨本网站采用BY-NC-SA协议进行授权

转载请注明:永恒心锁-分享互联网 » 在x64系统下的使用禁止注册表重定向

您必须 登录 才能发表评论!