NSIS x64 位系统下安装
来源:互联网 发布:手机淘宝代付 编辑:程序博客网 时间:2024/06/05 18:15
NSIS生成的安装程序都是32位的应用程序,所以在x64下运行时,所安装的文件会被自动转向,如安装到C:\Windows\System32目录下的文件会被安装到C:\Windows\SysWOW64目录下。这对于有些软件是不方便的。
NSIS已经有现成的头文件 x64.nsh (X:\NSIS\Include\x64.nsh) 供大家使用
首先需要引用
!include "x64.nsh"
x64.nsh 里有三个宏 _RunningX64、DisableX64FSRedirection 和 EnableX64FSRedirection
根据宏名称能猜到它们是功能,分别对应 检查运行环境是否是X64、禁止文件转向 和 运行文件转向
在实际调用的时候就可以根据实际需要来运用上述3个宏了。
简单的测试代码:
!include x64.nshFunction .onInit ${If} ${RunningX64} ${EnableX64FSRedirection} ${else} MessageBox MB_OK "Sorry this application runs only on x64 machines" Abort ${EndIf}FunctionEndSection - Detailprint '$SYSDIR' DetailPrint '$WINDIR' DetailPrint '$PROGRAMFILES'SectionEnd
参考资料:
NSIS在x64系统下的使用
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)"
http://www.cnblogs.com/zealsoft/archive/2005/05/25/162314.html
$PROGRAMFILES on x64
http://forums.winamp.com/showthread.php?s=6f60eaa0eae8f95aef4e86eb24e31b8d&threadid=262873&highlight=X64+%24INSTDIR- NSIS x64 位系统下安装
- NSIS x64 位系统下安装
- NSIS 制作 64 位系统下的安装程序
- 32位系统下正确安装windows 2008 X64
- Centos 6.6(x64位)系统 Github安装
- Xcelsius 2008 在win10 64位系统下 基于OFFICE2010-x64 的安装
- 64位CentOS7下编译安装nsis-2.46
- x86,x64系统下安装OleDB驱动
- X64位下 CreateThread
- Windows 7 x64 系统中安装 Apache64位服务器
- Centos 6.6(X64位)系统编译安装Apache服务器
- Centos 6.6(X64位)系统编译安装MySQL5.6源码
- Centos 6.6(X64位)系统编译安装PHP5.6.8教程
- Windows 7 SP1 X64位系统安装JDK
- Windows 7 SP1 X64位系统安装Ant
- 在REHL 5.5 X64下安装64位JDK
- windows x64 即64位操作系统下php7安装
- NSIS制作32位安装包
- 存储过程——as 位置的作用
- 第一次XP 共享访问,我点了"记住密码",请问如何取消?
- Ubuntu下U盘低级格式化
- GDB中应该知道的几个调试方法
- linux驱动:设备驱动模型综述
- NSIS x64 位系统下安装
- 雪山温泉海螺沟(二):去海螺沟
- 2398
- js checkout 全选 反选
- cygwin中文乱码及 ls 颜色高亮
- js 输入框为空时 disable button
- linux设备驱动读书笔记
- 2011百校联动“菜鸟杯”程序设计公开赛&&Magic Potion
- svn 中导入Android source 新仓库注意