NSIS技术点和问题点解析

1.多语言支持

        只需要在打包文件开头添加如下命令即可支持多语言,以下里例子,如需要添加其它语言只需要在NSIS安装目录下的Contrib\Language files目录中查找对应语言。

        !insertmacro MUI_LANGUAGE "SimpChinese"
        !insertmacro MUI_LANGUAGE "English"
        !insertmacro MUI_LANGUAGE "TradChinese"
        !insertmacro MUI_RESERVEFILE_LANGDLL

 

        Function .onInit

                !insertmacro MUI_LANGDLL_DISPLAY  ;弹出语言选择对话框

        FunctionEnd

2.通过打包命令实现定制多语言显示的名称

        先定义一下函数,然后在打包初始化(Function .onInit )函数中进行调用(call .onSelLang)即可,Push中的名称可以自己定义。

        ;下面函数为将相应的语言添加到语言选择界面,然后在初始化函数里调用该函数即可
        Function .onSelLang 

            Push ""
            Push ${LANG_SIMPCHINESE}
            Push "中文(简体)"
            Push ${LANG_ENGLISH}
            Push English
            Push ${LANG_TRADCHINESE}
            Push "中文(繁體)"
 
           Push A ; A means auto count languages      ; for the auto count to work the first empty push (Push "") must remain
           LangDLL::LangDialog "Installer Language" "Please select the language of the installer"

           Pop $LANGUAGE
           StrCmp $LANGUAGE "cancel" 0 +2
           Abort

       FunctionEnd

3.通过修改NSIS安装后的文件实现定制多语言显示的名称

       如果我需要修改多语言显示的名称,需要修改对应的NSIS文件,例如,修改\Contrib\Language files目录下的SimpChinese.nsh文件中的!insertmacro LANGFILE "SimpChinese" "Chinese (Simplified)"修改为!insertmacro LANGFILE "SimpChinese" "中文简体",即可实现在多语言选择的时候显示“中文简体”。

4.修改安装过程中页面的显示字串

        通过修改Contrib\Language files目录下的.nlf和.nsh文件就可以修改安装字串。

 5.删除桌面快捷方式

        Delete "$DESKTOP\${PRODUCT_NAME}.lnk"
 6.删除开始菜单中的快捷方式

        Delete "$SMPROGRAMS\${PRODUCT_NAME}\Uninstall.lnk"
        RMDir /r /REBOOTOK "$SMPROGRAMS\${PRODUCT_NAME}" 

7.刷新桌面

        System::Call 'Shell32::SHChangeNotify(i 0x8000000, i 0, i 0, i 0)'

8.设置是否自动关闭

       SetAutoClose true

9.设置是否重启电脑

       SetRebootFlag true

10.提升打包文件的执行权限

       RequestExecutionLevel admin

11.设置安装界面的标题

       Caption "安装标题"

12.设置卸载界面的标题

        UninstallCaption "卸载标题"

13.获取当前账户的本地缓存(Local\VirtualStore)

        "$PROFILE\AppData\Local\VirtualStore\Program Files\NAME"(32为系统)
        "$PROFILE\AppData\Local\VirtualStore\Program Files (x86)\NAME"(64位系统)

14.无法删除开始菜单中的快捷文件夹

        RMDir /r /REBOOTOK "$SMPROGRAMS\${PRODUCT_NAME}"  无法删除需要把PRODUCT_NAME换成指定的文件夹名称。

        RMDir /r /REBOOTOK "$SMPROGRAMS\${指定的文件夹名称}"无法删除,需要查看在创建前CreateDirectory "$SMPROGRAMS\$InstallPath"是否调用SetShellVarContext all。

15.添加或修改打包后的文件的属性信息  

        VIProductVersion "1.2.3.4"
        VIAddVersionKey /LANG=${LANG_ENGLISH} "ProductName" "Test Application"
        VIAddVersionKey /LANG=${LANG_ENGLISH} "Comments" "A test comment"
        VIAddVersionKey /LANG=${LANG_ENGLISH} "CompanyName" "Fake company"
        VIAddVersionKey /LANG=${LANG_ENGLISH} "LegalTrademarks" "Test Application is a trademark of Fake company"
        VIAddVersionKey /LANG=${LANG_ENGLISH} "LegalCopyright" "?Fake company"
        VIAddVersionKey /LANG=${LANG_ENGLISH} "FileDescription" "Test Application"
        VIAddVersionKey /LANG=${LANG_ENGLISH} "FileVersion" "1.2.3” 欢迎光临

        注.如果要修改属性中的语言,那么只需要正确的书写以上LANG_ENGLISH对应的语言值就可以了。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值