NSIS在x64系统下的使用

快乐无极 , 2011/06/28 22:04 , 安装制作 , 评论(0) , 阅读(11203) , Via cnblog | |

NSIS生成的安装程序都是32位的应用程序,所以在x64下运行时,所安装的文件会被自动转向,如安装到C:\Windows\System32目录下 的文件会被安装到C:\Windows\SysWOW64目录下。这对于有些软件是不方便的。一个办法是重新编译NSIS的代码为64位,就是有点麻烦, 而且需要大量的时间测试一下。利用简单的代码也可以解决类似的问题:
1、检测操作系统是否为x64系统
可以读环境变量PROCESSOR_ARCHITECTURE,该变量在32位系统为x86,在AMD的x64的机器和在Intel的x64机器上为AMD64,在安腾(Itanium)系统为IA64。可以使用下面的代码:

  ReadEnvStr $Win64 PROCESSOR_ARCHITECTURE
  StrCmp $Win64 "x86" lbl_Win32

2、禁止文件转向
调用Wow64EnableWow64FsRedirection函数可以禁止或恢复文件转向。如:
; 禁止
System::Call "Kernel32::Wow64EnableWow64FsRedirection(i 0)"
    ......
; 恢复
System::Call "Kernel32::Wow64EnableWow64FsRedirection(i 1)"

Tags: ,
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]