`
codsoul
  • 浏览: 212224 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
社区版块
存档分类
最新评论

NSIS 常用小问题合集

阅读更多
程序代码
问: 我想让软件安装在windows2000以上的版本, 98,ME的不要.
        请问如何在安装的时候得到当前操作系统的信息,如果系统不符合要求,就退出安装程序.

答: ReadRegStr $0 HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion
        strcmp $0 "" 98 nt
        98:
          messagebox  MB_ICONINFORMATION|MB_OK "您使用的操作系统版本过低,无法安装,程序将退出!"
        quit
          nt:


程序代码
问:我在做一系统补丁,作封装系统时用的,想完成后自动删除自己,以免留下垃圾文件,如何在结束时删除自己呢?

答:System::Call 'kernel32::GetModuleFileNameA(i 0, t .s, i ${NSIS_MAX_STRLEN}) i'
      Pop $0
      Delete /REBOOTOK $0


程序代码
问:!define MUI_WELCOMEPAGE_TITLE "欢迎使用 ****升级向导"
      我想把第一个welcome界面的文字改变
    可是,这个定义的改变,是需要我判的,如果是升级,我才重定义文字
    我把这个!define是写再.OnInit里面的,可是没起作用啊

答:带 ! 的都是编译期指令,编译好之后就不能改了。
但是你自己追查一下就很容易发现 NSIS\Contrib\Modern UI\System.nsh 里的宏是怎么写的,查找 MUI_WELCOMEPAGE_TITLE 几次就会发现的,其实就是向 $PLUGINSDIR\ioSpecial.ini 里写了一个字串而已。


程序代码
问:我想把安装结束后的“查看自述”改成欣赏音乐但不知道怎么修改代码。

答:!define MUI_FINISHPAGE_SHOWREADME_FUNCTION playmusic
      !define MUI_FINISHPAGE_SHOWREADME_TEXT 欣赏音乐
       …………
    Function playmusic
          ExecShell "open" "$INSTDIR\你的音乐文件"
      FunctionEnd


程序代码
问:假如我想直接解压一个文件到一个指定的路径,如 d:\temp\aa\ 下,应如何写代码?

答:CreateDirectory "d:\temp\aa\"
      File /oname="$PLUGINSDIR\unrar.exe" "WinRAR的安装目录\unrar.exe"
      File /oname="$PLUGINSDIR\abc.rar" "要解压的文件"
      nsExec::Exec '"$PLUGINSDIR\unrar.exe" x "$PLUGINSDIR\abc.rar" "d:\temp\aa\"'


程序代码
问:在向一个文件写入 ASCII 码时不能继续编译,脚本中不能有 ASCII 码。提示:“错误: 未终结的字符串解析在。。。”
答:字符串要以 " 开头,并以 " 结尾。
问:问题不在于“"”,而在于这个字符“”,这个字符只要在脚本中就不能编译。这个字符的二进制是:00011010  十进制:026  十六进制:1A
答:确实如此,那你用 IntFmt 吧,相当于 printf
        StrCpy $0 "1234"
        IntFmt $1 "%c" 0x1A
        StrCpy $0 "$0$16789"
        DetailPrint $0
问:终于写入成功了,我用: IntFmt $1 "%c" 032 得到了我想要的字符,但数字字串为什么不是 026 呢?不解。
答:十六进制啊,%c 表示转换为字符。


程序代码
问:在NSIS中如何实现对操作系统的判断呢?

答:System::Call "Kernel32::GetVersion(v) i .s"
      Pop $0
      IntOp $1 $0 & 0xFF
      DetailPrint "Windows 主版本: $1"
      IntOp $1 $0 & 0xFFFF
      IntOp $1 $1 >> 8
      DetailPrint "Windows 次版本: $1"
      IntCmpU $0 0x80000000 0 nt
      DetailPrint "Windows 95/98/Me"
      Goto wend
      nt:
        DetailPrint "Windows NT/2000/XP"
      wend:


程序代码
问:怎样才可以在安装过程中判断目标文件或目录是否存在?

答:Iffilexist "$PROGRAMFILES\123\ABC.EXE" 0 +3
      MessageBox MB_OK "存在"
      goto +2
      MessageBox MB_OK "不存在"


程序代码
问:怎样才可以在安装过程中判断目标注册表的一个值或字段是否存在?

答:ClearErrors
      ReadRegstr $0 HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Run" "ABC"
      IfErrors 0 +3
      MessageBox MB_OK "不存在"
      goto +2
      MessageBox MB_OK "存在"


程序代码
问:如何获取代表当前系统盘根目录的盘符?

答:Strcpy $R1 $WINDIR 3
分享到:
评论

相关推荐

    NSIS安装包制作教程详细版

    NSIS 常用小问题合集 资源替换式的美化包制作方式代码 安装完毕后如何刷新文件关联 教你如何编程调用 NSIS 的插件 NSIS安装程序概要 实现 NSIS 自定义页面中的控件操作代码 如何使用NSIS实现多目录安装设置 ...

    NSIS安装工具.rar

    NSIS 常用小问题合集 资源替换式的美化包制作方式代码 安装完毕后如何刷新文件关联 教你如何编程调用 NSIS 的插件 NSIS安装程序概要 实现 NSIS 自定义页面中的控件操作代码 如何使用NSIS实现多目录安装设置 ...

    NSIS插件教程合集_2014.10.30.chm

    在"NSIS插件教程合集"中,你可能会学到如何使用以下常见的NSIS插件: 1. `FileAssociation`插件:用于创建和修改文件关联,让特定的文件类型与应用程序关联。 2. `RegDLL`插件:帮助注册或卸载DLL文件,这在安装和...

    NSIS-中文帮助文档

    FAQ - 常见问题列表 NSIS Wiki - 例子、函数、指南、插件、软件等等 Forum - 发表你的问题或进行 NSIS 相关讨论 版权所有 (C) 1999-2009 贡献者 第一章: 介绍 NSIS 关于 NSIS 主要特性 特性列表 第二章: 教程:...

    NSIS资源合集V1.0官方中文安装版

    NSIS资源合集分享给脚本之家的各位朋友,NSIS资源合集包含了大部分NSIS官方网站上的插件并且按照标准格式整理好,而且基本每个插件都有至少一个官方或自己编写的例子,便于新手学习,同时也加入了一些较常用或较有...

    nsis+winCodeSign+nsis-resources-3.4.1.zip

    4. **错误排查**:理解常见的NSIS编译错误,如文件路径错误、依赖项缺失等,并学会通过日志文件定位和解决问题。 5. **安全性考虑**:了解数字签名的原理,以及为什么在发布软件时必须对安装程序进行签名。 6. **...

    NSIS安装包.zip

    6. **安全与便携性**:NSIS生成的安装程序通常较小,因为它是基于纯文本的脚本。同时,由于其开源性质,社区可以检查源代码,确保没有隐藏的恶意代码,增加了用户的安全感。 7. **应用场景**:NSIS广泛应用于各种...

    NSIS+Duilib自定义安装程序

    Duilib支持各种常见的控件和布局,如按钮、列表框、对话框等,同时也方便与后台逻辑进行交互。 将NSIS与Duilib结合,可以实现高度定制化的安装程序界面。在描述中提到的"NSIS+Duilib自定义安装程序",意味着开发者...

    NSIS使用教程及常见问题个人笔记

    NSIS(Nullsoft Scriptable Install System)是一种流行的开源安装制作系统,用于创建Windows平台上的安装、卸载程序。它以其简洁高效的脚本语言、小巧的系统开销以及强大的功能著称,能够处理安装过程中的各种任务...

    NSIS ERROR的解决办法

    1. **重新下载安装包**:NSIS ERROR的一个常见原因是安装文件在下载过程中被破坏或不完整。确保从官方或可靠的来源重新下载安装程序,避免中间过程中的数据丢失或篡改。 2. **检查杀毒软件**:有些安全软件可能会误...

    nsis-3.0.4.1

    常见的问题包括: 1. **依赖缺失**:确保所有必要的库和运行时环境(如.NET Framework、Visual C++ Redistributable)都已经安装。对于Electron应用,Node.js和Chromium的运行环境是必需的。 2. **脚本错误**:...

    NSIS卸载保留文件夹

    这行代码导入了外部的库文件“LogicLib.nsh”,该文件可能包含了常用的函数和宏定义,简化了脚本的编写。 - **日志记录与读取**: ```nsis Section "-LogSetOn" LogSeton SectionEnd ``` 这部分设置了日志...

    nsis-3.0程序打包软件.rar

    通过NSIS,开发者可以创建出功能丰富的安装程序,包括安装、卸载、系统配置以及文件解压缩等常见功能,满足各种软件部署需求。 NSIS的灵活性在于其基于脚本的编程方式,用户可以通过编写简单的NSIS脚本来定义安装...

    NSIS安装包制作工具

    包括NSIS安装包、NSIS编辑器以及很全的NSIS常用插件: NSIS 的插件 需要配合 Nullsoft Scriptable Install System(NSIS专业安装包制作工具) 才能使用。 NSIS 中文版下载地址: ...

    NSIS+Duilib 自定义安装程序

    常见的命令包括`SetOutPath`(设置输出路径)、`File`(复制文件)、`Section`(定义安装部分)等。 2. **Duilib界面设计**:首先,你需要熟悉XML布局文件,用于描述UI元素的位置和属性。然后,使用Duilib提供的...

    NSIS 资源合集(附源代码)

    本扩展包包含了大部分NSIS官方网站上的插件并且按照标准格式整理好。并且基本每个插件都有至少一个官方或自己编写的例子,便于新手学习。同时也加入了一些较常用或较有价值的代码例子,大家可以参考下。

    NSIS文件夹压缩器

    这种工具通常会自动处理文件的复制、注册表操作、权限设置等安装过程中的常见任务,同时提供用户界面供用户选择安装选项。 描述中提到的“压缩率大”,意味着该工具在打包过程中能够高效地压缩数据,减少最终生成的...

    NSIS用户手册中文版

    用户可以通过手册了解NSIS的详细用法,解决实际开发中遇到的问题。 总之,NSIS是一个强大且灵活的安装制作工具,通过学习和掌握NSIS用户手册中的知识,开发者能够创建出专业且用户友好的安装程序,满足各种软件部署...

    NSIS 带集成开发环境

    5. **NSIS的常见应用场景**: - **软件安装**:NSIS常用于创建软件的安装程序,确保软件的所有组件正确地安装到用户系统中。 - **系统维护**:也可以用于创建系统维护工具,例如卸载程序、更新程序、数据备份等。 ...

Global site tag (gtag.js) - Google Analytics