NSIS x64 位系统下安装

——转载自 百度空间 

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.nsh

Function .onInit
        ${If} ${RunningX64} 
        ${EnableX64FSRedirection} 
        ${else}
        MessageBox MB_OK "Sorry this application runs only on x64 machines"
        Abort
        ${EndIf}
FunctionEnd

Section -
       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
  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
NSIS(Nullsoft Scriptable Install System)是一个开源的安装程序制作工具,它可以创建Windows平台下的安装程序。NSIS提供了一个简单而强大的脚本语言,使得开发者可以创建定制化的安装程序。 以下是一个使用NSIS写的美化安装脚本的示例: 1. 首先,我们需要创建一个NSIS脚本文件,比如“installer.nsi”。 2. 在脚本文件中,我们需要定义需要安装的文件和目录。比如: ``` ; 定义需要安装的文件和目录 SetOutPath "$INSTDIR" File /r "path/to/files/*.*" ``` 3. 接下来,我们可以自定义安装界面。NSIS提供了多种界面模板,我们可以选择其中一种或自己编写。比如: ``` !include "MUI2.nsh" ; 自定义安装界面 !define MUI_HEADERIMAGE !define MUI_WELCOMEFINISHPAGE_BITMAP "path/to/image.bmp" !define MUI_LICENSEPAGE_BITMAP "path/to/image.bmp" !define MUI_CUSTOMFUNCTION_GUIINIT myGUIInit !define MUI_CUSTOMFUNCTION_LEAVE myLeave Function myGUIInit ; 设置安装界面的背景色和字体 FunctionEnd Function myLeave ; 安装完成后的处理 FunctionEnd ; 定义安装界面元素 !insertmacro MUI_PAGE_WELCOME !insertmacro MUI_PAGE_LICENSE "path/to/license.txt" !insertmacro MUI_PAGE_DIRECTORY !insertmacro MUI_PAGE_INSTFILES !insertmacro MUI_PAGE_FINISH ``` 4. 最后,我们需要编译NSIS脚本文件并生成安装程序。在命令行中执行以下命令即可: ``` makensis.exe installer.nsi ``` 上述示例演示了如何在NSIS中创建美化的安装脚本。你可以根据需要自定义界面和安装过程中的行为。同时,NSIS还提供了很多其他功能,比如创建桌面快捷方式、添加注册表项等,可根据自己的需求进行开发。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值