NSIS常用 指令解释

NSIS 路径


$INSTDIR


安装目录 ($INSTDIR 可以使用 StrCpy、ReadRegStr、ReadINIStr 等等来更改。例如在 .onInit 函数里可以用来做高级的检测安装定位)。

注意在卸载程序代码里,$INSTDIR 为卸载程序所在的目录而不是在安装程序里所指定的目录。例如,你把卸载程序放在 $WINDIR 里并且用户没有移动它
,那么在卸载程序里 $INSTDIR 就等于 $WINDIR。如果你要把卸载程序放到到另外的位置,那么你应该先把安装程序的 $INSTDIR 值写入注册表或其它容
易保存的地方,然后在卸载程序里读取该值并赋值给卸载程序里的 $INSTDIR。


$OUTDIR


当前输出路径 (通过 SetOutPath 设定或通过 StrCpy、ReadRegStr、ReadINIStr 等等)


$CMDLINE


安装程序的命令行输入。命令行的格式如下面之一所示:

"完整路径\安装程序.exe" 参数 参数 参数
安装程序.exe 参数 参数 参数
对于解析“参数”部分,参阅 GetParameters 在 常用函数附录。如果在命令行里指定了 /D= (用来跳过安装路径的选择)那么 /D= 后面的参数将不会被
保存在 $CMDLINE(前面的可以保存)。


$LANGUAGE


当前使用的语言标识符。例如,英语是 1033。你可以在 .onInit 里更改。
 

4.2.3 常量


常量通常用在 InstallDir 属性里。

需要注意的是一些新的常量并不是在所有的 OS 上都是正常的。例如 $CDBURN_AREA 仅在 Windows XP 及以上系统中才正常。如果在 Windows 98 中使用
将会得到空值。除非特别提示,否则该常量都是在所有 OS 上有效的。


$PROGRAMFILES



程序文件目录(通常为 C:\Program Files 但是运行时会检测)。


$COMMONFILES



公用文件目录。这是应用程序共享组件的目录(通常为 C:\Program Files\Common Files 但是运行时会检测)。


$DESKTOP


Windows 桌面目录(通常为 C:\windows\desktop 但是运行时会检测)。该常量的内容(所有用户或当前用户)取决于 SetShellVarContext 设置。默认为当
前用户。


$EXEDIR


安装程序运行时的位置。(从技术上来说你可以修改改变量,但并不是一个好方法)。


${NSISDIR}


包含 NSIS 安装目录的一个标记。在编译时会检测到。常用于在你想调用一个在 NSIS 目录下的资源时,例如:图标、界面……


$WINDIR


Windows 目录(通常为 C:\windows 或 C:\winnt 但在运行时会检测)


$SYSDIR


Windows 系统目录(通常为 C:\windows\system 或 C:\winnt\system32 但在运行时会检测)


$TEMP


系统临时目录(通常为 C:\windows\temp 但在运行时会检测)


$STARTMENU



开始菜单目录(常用于添加一个开始菜单项,使用 CreateShortCut)。该常量的内容(所有用户或当前用户)取决于 SetShellVarContext 设置。默认为当前
用户。


$SMPROGRAMS


开始菜单程序目录(当你想定位 $STARTMENU\程序 时可以使用它)。该常量的内容(所有用户或当前用户)取决于 SetShellVarContext 设置。默认为当前用
户。


$SMSTARTUP


开始菜单程序/启动 目录。该常量的内容(所有用户或当前用户)取决于 SetShellVarContext 设置。默认为当前用户。


$QUICKLAUNCH


在 IE4 活动桌面及以上的快速启动目录。如果快速启动不可用,仅仅返回和 $TEMP 一样。


$DOCUMENTS


文档目录。一个当前用户典型的路径形如 C:\Documents and Settings\Foo\My Documents。这个常量的内容(所有用户或当前用户)取决于
SetShellVarContext 设置。默认为当前用户。

该常量在 Windows 95 且 Internet Explorer 4 没有安装时无效。


$SENDTO


该目录包含了“发送到”菜单快捷项。


$RECENT


该目录包含了指向用户最近文档的快捷方式。


$FAVORITES


该目录包含了指向用户网络收藏夹、文档等的快捷方式。这个常量的内容(所有用户或当前用户)取决于 SetShellVarContext 设置。默认为当前用户。


该常量在 Windows 95 且 Internet Explorer 4 没有安装时无效。


$MUSIC


用户的音乐文件目录。这个常量的内容(所有用户或当前用户)取决于 SetShellVarContext 设置。默认为当前用户。

该常量仅在 Windows XP、ME 及以上才有效。


$PICTURES


用户的图片目录。这个常量的内容(所有用户或当前用户)取决于 SetShellVarContext 设置。默认为当前用户。

该常量仅在 Windows 2000、XP、ME 及以上才有效。


$VIDEOS


用户的视频文件目录。这个常量的内容(所有用户或当前用户)取决于 SetShellVarContext 设置。默认为当前用户。

该常量仅在 Windows XP、ME 及以上才有效。


$NETHOOD


该目录包含了可能存在于我的网络位置、网上邻居文件夹的链接对象。

该常量在 Windows 95 且 Internet Explorer 4 和活动桌面没有安装时无效。


$FONTS


系统字体目录。


$TEMPLATES


文档模板目录。这个常量的内容(所有用户或当前用户)取决于 SetShellVarContext 设置。默认为当前用户。


$APPDATA


应用程序数据目录。当前用户路径的检测需要 Internet Explorer 4 及以上。所有用户路径的检测需要 Internet Explorer 5 及以上。这个常量的内容(
所有用户或当前用户)取决于 SetShellVarContext 设置。默认为当前用户。

该常量在 Windows 95 且 Internet Explorer 4 和活动桌面没有安装时无效。


$LOCALAPPDATA


本机应用程序数据目录。

该常量仅在 Windows 2000 或以上系统有效。.


$PRINTHOOD


该目录包含了可能存在于打印机文件夹的链接对象。

该常量在 Windows 95 和 Windows 98 上无效。


$INTERNET_CACHE



Internet Explorer 的临时文件目录。

该常量在 Windows 95 和 Windows NT 且 Internet Explorer 4 和活动桌面没有安装时无效。


$COOKIES


Internet Explorer 的 Cookies 目录。

该常量在 Windows 95 和 Windows NT 且 Internet Explorer 4 和活动桌面没有安装时无效。


$HISTORY


Internet Explorer 的历史记录目录。

该常量在 Windows 95 和 Windows NT 且 Internet Explorer 4 和活动桌面没有安装时无效。


$PROFILE



用户的个人配置目录。一个典型的路径如 C:\Documents and Settings\Foo。

该常量在 Windows 2000 及以上有效。


$ADMINTOOLS



一个保存管理工具的目录。这个常量的内容(所有用户或当前用户)取决于 SetShellVarContext 设置。默认为当前用户。

该常量在 Windows 2000、ME 及以上有效。


$RESOURCES



该资源目录保存了主题和其他 Windows 资源(通常为 C:\Windows\Resources 但在运行时会检测)。

该常量在 Windows XP 及以上有效。


$RESOURCES_LOCALIZED



该本地的资源目录保存了主题和其他 Windows 资源(通常为 C:\Windows\Resources\1033 但在运行时会检测)。

该常量在 Windows XP 及以上有效。


$CDBURN_AREA


一个在烧录 CD 时储存文件的目录。

该常量在 Windows XP 及以上有效。


$HWNDPARENT


父窗口的十进制窗口句柄。


$PLUGINSDIR


该路径是一个临时目录,当第一次使用一个插件或一个调用 InitPluginsDir 时被创建。该文件夹当安装程序退出时会被自动删除。这个文件夹的用意是
用来保存给 InstallOptions 使用的 INI 文件、启动画面位图或其他插件运行需要的文件。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
NSIS 用户手册 新闻、信息、支持、例子、指南等可以到 http://nsis.sf.net 查看。 快速链接: FAQ - 常见问题列表 NSIS Wiki - 例子、函数、指南、插件、软件等等 Forum - 发表你的问题或进行 NSIS 相关讨论 版权所有 (C) 1999-2009 贡献者 第一章: 介绍 NSIS 关于 NSIS 主要特性 特性列表 第二章: 教程: 基础知识 介绍 脚本文件 脚本结构 安装程序属性 页面 区段 函数 脚本的工作方式 逻辑代码结构 变量 调试脚本 脚本的执行 编译器命令 编译器 新式用户界面(Modern UI) 插件 更多 第三章: 命令行的用法 MakeNSIS 的使用 选项 注意事项 环境变量 例子 安装程序的使用 公共选项 卸载程序特殊选项 例子 第四章: 脚本参考 脚本文件格式 变量 用户变量 Var 其他可写的变量 常量 在字符串里使用常量 标记 相对跳转 页面 次序关系 页面选项 回调 Page UninstPage PageEx PageExEnd PageCallbacks 区段 区段命令 AddSize Section SectionEnd SectionIn SectionGroup SectionGroupEnd 卸载区段 函数 函数命令 Function FunctionEnd 回调函数 安装回调 .onGUIInit .onInit .onInstFailed .onInstSuccess .onGUIEnd .onMouseOverSection .onRebootFailed .onSelChange .onUserAbort .onVerifyInstDir 卸载回调 un.onGUIInit un.onInit un.onUninstFailed un.onUninstSuccess un.onGUIEnd un.onRebootFailed un.onSelChange un.onUserAbort 安装程序属性 常规属性 AddBrandingImage AllowRootDirInstall AutoCloseWindow BGFont BGGradient BrandingText Caption ChangeUI CheckBitmap CompletedText ComponentText CRCCheck DetailsButtonText DirText DirVar DirVerify FileErrorText Icon InstallButtonText InstallColors InstallDir InstallDirRegKey InstProgressFlags InstType LicenseBkColor LicenseData LicenseForceSelection LicenseText MiscButtonText Name OutFile RequestExecutionLevel SetFont ShowInstDetails ShowUninstDetails SilentInstall SilentUnInstall SpaceTexts SubCaption UninstallButtonText UninstallCaption UninstallIcon UninstallSubCaption UninstallText WindowIcon XPStyle 编译器标记 AllowSkipFiles FileBufSize SetCompress SetCompressor SetCompressorDictSize SetDatablockOptimize SetDateSave SetOverwrite 版本信息 VIAddVersionKey VIProductVersion 指令 基本指令 Delete Exec ExecShell ExecWait File Rename ReserveFile RMDir SetOutPath 注册表、INI 文件指令 DeleteINISec DeleteINIStr DeleteRegKey DeleteRegValue EnumRegKey EnumRegValue ExpandEnvStrings FlushINI ReadEnvStr ReadINIStr ReadRegDWORD ReadRegStr WriteINIStr WriteRegBin WriteRegDWORD WriteRegStr WriteRegExpandStr 常规用途指令 CallInstDLL CopyFiles CreateDirectory CreateShortCut GetDLLVersion GetDLLVersionLocal GetFileTime GetFileTimeLocal GetFullPathName GetTempFileName SearchPath SetFileAttributes RegDLL UnRegDLL 流程控制指令 Abort Call ClearErrors GetCurrentAddress GetFunctionAddress GetLabelAddress Goto IfAbort IfErrors IfFileExists IfRebootFlag IfSilent IntCmp IntCmpU MessageBox Return Quit SetErrors StrCmp StrCmpS 文件指令 FileClose FileOpen FileRead FileReadByte FileSeek FileWrite FileWriteByte FindClose FindFirst FindNext 卸载程序指令 WriteUninstaller 混合指令 GetErrorLevel GetInstDirError InitPluginsDir Nop SetErrorLevel SetRegView SetShellVarContext Sleep 字符串操作指令 StrCpy StrLen 堆栈支持 Exch Pop Push 整数支持 IntFmt IntOp 重新启动指令 Reboot SetRebootFlag 安装记录指令 LogSet LogText 区段管理 SectionSetFlags SectionGetFlags SectionSetText SectionGetText SectionSetInstTypes SectionGetInstTypes SectionSetSize SectionGetSize SetCurInstType GetCurInstType InstTypeSetText InstTypeGetText 用户界面指令 BringToFront CreateFont DetailPrint EnableWindow FindWindow GetDlgItem HideWindow IsWindow LockWindow SendMessage SetAutoClose SetBrandingImage SetDetailsView SetDetailsPrint SetCtlColors SetSilent ShowWindow 多语言指令 LoadLanguageFile LangString LicenseLangString 多语言 语言选择 LangDLL 插件 RTL 语言 插件 DLLs 使用插件命令 手动调用插件 静默安装程序、卸载程序 第五章: 编译时的命令 编译时的命令 !include !addincludedir !addplugindir !appendfile !cd !delfile !echo !error !execute !packhdr !system !tempfile !warning !verbose 预定义 ${__FILE__} ${__LINE__} ${__DATE__} ${__TIME__} ${__TIMESTAMP__} 范围预定义 ${__GLOBAL__} ${__SECTION__} ${__FUNCTION__} ${__PAGEEX__} ${__UNINSTALL__} 读取环境变量 $%envVarName% 条件编译 !define !undef !ifdef !ifndef !if !ifmacrodef !ifmacrondef !else !endif !insertmacro !macro !macroend !searchparse !searchreplace 附录 A: 新式用户界面(Modern UI) 附录 B: DLL/TLB 库的安装 介绍 库的安装 介绍 参数 选项 LIBRARY_X64 LIBRARY_SHELL_EXTENSION LIBRARY_COM LIBRARY_IGNORE_VERSION 注意事项 例子 取消共享 DLL 共享 DLL 库的卸载 介绍 参数 选项 LIBRARY_X64 LIBRARY_SHELL_EXTENSION LIBRARY_COM 例子 Visual Basic 6 运行库 附录 C: 常用脚本 获取 Internet Explorer 版本 判断 .NET Framework 是否已安装? 判断 Macromedia Flash Player 是否已安装? 连接到 Internet 获取安装程序文件名 禁止多个安装程序实例 更多 Appendix D: 常用信息 错误级别 添加卸载信息到添加/删除程序面板 使用 System.dll 插件来调用一个外部 DLL 把安装详细信息导出到文件 如何读取 REG_MULTI_SZ 值 附录 E: 常用头文件 文件函数头文件 介绍 Locate GetSize DriveSpace GetDrives GetTime GetFileAttributes GetFileVersion GetExeName GetExePath GetParameters GetOptions GetOptionsS GetRoot GetParent GetFileName GetBaseName GetFileExt BannerTrimPath DirState RefreshShellIcons 文本函数头文件 介绍 LineFind LineRead FileReadFromEnd LineSum FileJoin TextCompare TextCompareS ConfigRead ConfigReadS ConfigWrite ConfigWriteS FileRecode TrimNewLines 文字函数头文件 介绍 WordFind WordFindS WordFind2X WordFind2XS WordFind3X WordFind3XS WordReplace WordReplaceS WordAdd WordAddS WordInsert WordInsertS StrFilter StrFilterS VersionCompare VersionConvert 附录 F: 更新纪录和发行说明 2.44 更改日志 主要更改 次要更改 2.43 发行说明 更改日志 次要更改 实用程序和插件 翻译 Plug-in API 构建系统 2.42 发行说明 更改日志 主要更改 次要更改 翻译 构建系统 2.41 更改日志 次要更改 翻译 构建系统 2.40 更改日志 主要更改 次要更改 翻译 2.39 更改日志 主要更改 次要更改 2.38 更改日志 主要更改 次要更改 Modern UI 翻译 2.37 更改日志 主要更改 次要更改 实用程序和插件 翻译 构建系统 2.36 发行说明 更改日志 主要更改 Modern UI nsDialogs 次要更改 实用程序和插件 翻译 构建系统 2.35 更改日志 主要更改 次要更改 实用程序和插件 2.34 发行说明 更改日志 主要更改 次要更改 实用程序和插件 翻译 构建系统 2.33 发行说明 更改日志 主要更改 次要更改 实用程序和插件 翻译 构建系统 2.32 发行说明 更改日志 主要更改 次要更改 实用程序和插件 翻译 构建系统 2.31 发行说明 更改日志 次要更改 实用程序和插件 翻译 构建系统 2.30 发行说明 更改日志 主要更改 次要更改 实用程序和插件 翻译 构建系统 2.29 发行说明 更改日志 主要更改 次要更改 实用程序和插件 翻译 构建系统 2.28 更改日志 主要更改 次要更改 实用程序和插件 翻译 构建系统 2.27 发行说明 更改日志 主要更改 次要更改 构建系统 2.26 发行说明 更改日志 主要更改 次要更改 新/更改的命令 实用程序和插件 翻译 构建系统 2.25 更改日志 主要更改 次要更改 新/更改的命令 实用程序和插件 翻译 构建系统 2.24 更改日志 主要更改 次要更改 新/更改的命令 实用程序和插件 翻译 构建系统 2.23 更改日志 次要更改 实用程序和插件 构建系统 2.22 发行说明 更改日志 次要更改 新/更改的命令 翻译 构建系统 2.21 更改日志 主要更改 次要更改 新/更改的命令 翻译 构建系统 2.20 更改日志 次要更改 翻译 构建系统 2.19 更改日志 次要更改 新/更改的命令 插件 翻译 2.18 更改日志 次要更改 翻译 2.17 更改日志 次要更改 翻译 2.16 发行说明 更改日志 主要更改 新/更改的命令 次要更改 翻译 构建系统 2.15 更改日志 新/更改的命令 次要更改 翻译 构建系统 2.14 发行说明 更改日志 主要更改 次要更改 2.13 发行说明 更改日志 主要更改 新/更改的命令 次要更改 实用程序和插件 翻译 构建系统 2.12 更改日志 主要更改 新/更改的命令 次要更改 实用程序和插件 翻译 构建系统 2.11 发行说明 更改日志 主要更改 新/更改的命令 次要更改 实用程序和插件 翻译 构建系统 2.10 更改日志 主要更改 次要更改 翻译 构建系统 2.09 更改日志 主要更改 新/更改的命令 次要更改 翻译 构建系统 2.08 发行说明 更改日志 主要更改 次要更改 构建系统 2.07 发行说明 更改日志 主要更改 新/更改的命令 次要更改 Include Files 实用程序和插件 翻译 2.06 更改日志 主要更改 新/更改的命令 次要更改 实用程序和插件 2.05 发行说明 更改日志 新/更改的命令 次要更改 2.04 更改日志 主要更改 次要更改 2.03 发行说明 更改日志 主要更改 新/更改的命令 次要更改 2.02 更改日志 主要更改 新/更改的命令 次要更改 实用程序和插件 2.01 发行说明 更改日志 主要更改 新/更改的命令 次要更改 实用程序和插件 2.0 发行说明 更改日志 Changes from 1.98 Changes from RC4 2.0 Release Candidate 4 更改日志 主要更改 次要更改 实用程序和插件 2.0 Release Candidate 3 更改日志 次要更改 实用程序和插件 2.0 Release Candidate 2 更改日志 次要更改 实用程序和插件 2.0 Release Candidate 1 发行说明 更改日志 主要更改 实用程序和插件 2.0 Beta 4 发行说明 更改日志 主要更改 新/更改的命令 次要更改 实用程序和插件 2.0 Beta 3 2.0 Beta 2 2.0 Beta 1 2.0 Beta 0 2.0 Alpha 7 2.0 Alpha 6 2.0 Alpha 5 2.0 Alpha 4 2.0 Alpha 3 2.0 Alpha 2 2.0 Alpha 1 2.0 Alpha 0 旧版本 附录 G: 构建 NSIS 常规构建 在 Windows 上构建 在 POSIX 上构建 每日构建 附录 H: 致谢名单 程序员 资源设计师 翻译人员 文档编写者 附录 I: 许可协议 版权 适用许可协议 zlib/libpng 许可协议 bzip2 许可协议 通用公共许可证 版本1.0 LZMA 压缩模块特殊例外声明 附录 J: 简体中文用户手册说明 致谢 NSIS 交流 NSIS 相关网站 翻译反馈 免责声明
### 回答1: NSIS (Nullsoft Scriptable Install System) 是一种用于创建 Windows 安装程序的脚本语言。它具有一组内置命令和参数,可用于定义安装程序的行为和外观。 PageCallbacks 是 NSIS 中的一种功能,可用于在安装程序向用户显示页面时执行自定义操作。例如,您可以使用 PageCallbacks 来更改页面的文本或标题,或者在用户点击按钮时执行特定的操作。 使用 PageCallbacks 时,您需要在安装脚本中使用特定的命令来定义回调函数,然后使用另一个命令将回调函数与页面关联。例如,要在页面显示时更改文本,您可以使用 `PageEx` 命令,并使用 `/onInit` 选项指定回调函数: ``` Function MyPageInit ${If} ${RunningX64} StrCpy $0 "This is the x64 version." ${Else} StrCpy $0 "This is the x86 version." ${EndIf} SetWindowText $0 FunctionEnd PageEx MyPage /onInit MyPageInit ``` 您还可以使用其他 PageCallbacks 命令,如 `/onShow` 和 `/onLeave`,来执行其他自定义操作。有关更多信息,请参阅 NSIS 官方文档或其他 NSIS 教程。 ### 回答2: NSIS(Nullsoft Scriptable Install System)是一个专业的安装制作工具,通过使用其自定义脚本语言,可以创建灵活且功能强大的安装程序。 在NSIS中,PageCallbacks是一种用于处理页面事件的机制。页面事件可以是用户在安装过程中与界面进行交互时触发的事件,比如点击“下一步”按钮、选择安装路径等操作。 通过PageCallbacks,我们可以在安装过程中根据需要进行一些自定义的操作。例如,可以在用户点击“下一步”按钮之前检查某些条件,如果条件不满足,可以显示一个错误提示,阻止用户继续安装。另外,还可以在用户完成某个页面的操作后,执行一些额外的任务,比如根据用户选择的安装路径,进行相关的配置操作。 NSIS提供了一些常用的PageCallbacks函数,如PageEx、PageDir、PageCustom等,通过这些函数可以注册页面事件的处理函数。在这些处理函数中,我们可以编写自定义的逻辑,根据需要进行一些操作。例如,在PageEx函数中可以处理用户点击“下一步”按钮的事件,在PageDir函数中可以处理用户选择安装路径的事件。 要使用PageCallbacks,我们首先需要在NSIS脚本中定义对应的页面,并为其注册相应的PageCallbacks函数。然后,通过编写处理函数来实现我们想要的功能。 总之,NSIS的PageCallbacks提供了一种灵活的方式来处理安装过程中的页面事件,并允许我们根据需要进行一些自定义的操作。通过合理使用PageCallbacks,可以提高安装程序的用户友好性和功能性。 ### 回答3: NSIS(Nullsoft Scriptable Install System)是一款用于创建Windows安装程序的脚本语言。在NSIS中,PageCallbacks是一种特殊的回调函数,用于在安装过程中的每个页面上触发特定的事件或操作。 PageCallbacks在NSIS中具有以下几个重要的用途: 1. 页面初始化:可以在页面加载时执行特定的初始化操作,例如设置页面标题、初始化界面元素或执行某些必要的检查等。 2. 页面显示:可以在页面显示时触发的回调函数中执行一些特定的操作。例如,在“Install”页面上可以进行安装相关的操作,或者在“Uninstall”页面上可以执行卸载相关的操作。 3. 页面跳转:通过PageCallbacks,可以根据特定的条件来决定页面之间的跳转。例如,在某个页面上进行条件判断,如果满足条件,则跳转到指定的页面,否则,可以继续停留在当前页面或者跳转到其他页面。 4. 用户交互:可以在PageCallbacks中捕获用户的输入或选择,并根据用户的操作来进行后续的操作。例如,在某个页面上显示一个选择框,根据用户的选择来执行相应的操作。 总之,通过使用NSIS的PageCallbacks,可以在安装程序的各个页面上添加自定义的操作和逻辑,以满足不同的需求。这些回调函数可以根据不同的事件来触发,并在用户操作时执行相应的操作,从而为开发人员提供了更大的灵活性和控制权。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值