NSIS 双模式安装程序。检查路径有效性

Posted

技术标签:

【中文标题】NSIS 双模式安装程序。检查路径有效性【英文标题】:NSIS dual mode installer. Checking path validity 【发布时间】:2011-03-08 15:11:07 【问题描述】:

我正在编写一个 NSIS 安装程序,该安装程序仅在用户选择需要管理员权限的安装路径后才会升级。显然,我包含了 MUI_DIRECTORYPAGE_VERIFYONLEAVE 定义,以允许“下一步”按钮保持活动状态,即使用户选择了这样的路径。用户更改安装目录后,将调用 .onVerifyInstDir 我应该检查路径有效性并调用 Abort 以使“下一步”按钮变灰。问题是,仅针对有效路径调用 .onVerifyInstDir,因此如果用户输入“sdfasdfas”之类的内容,则不会调用该函数,并且“下一步”按钮将保持活动状态。当然,我可以在离开目录页面时验证路径,但是对于这种情况,我想要的是一个非活动的“下一步”按钮。有什么想法吗?

【问题讨论】:

【参考方案1】:

只要去掉MUI_DIRECTORYPAGE_VERIFYONLEAVE,目录页不检查是否需要提升。

另一个选项是 subclass 编辑框,但你必须自己验证路径。

【讨论】:

是的,我不知何故错过了,目录页面没有检查写入 $INSTALLDIR 的权限。谢谢!

以上是关于NSIS 双模式安装程序。检查路径有效性的主要内容,如果未能解决你的问题,请参考以下文章

安装程序出现NSIS ERROR

NSIS 安装程序静默运行应用程序——电子

NSIS制作了一个完整的演示产品安装程序

NSIS目录

安装或卸载程序时(Adobe acrobat)提示无法应用转换程序,请检查指定的转换程序路径是否有效

NSIS 中止和错误级别