选择后添加浏览安装目录“${PRODUCT_NAME}”后的 NSIS 目录页面

2023-12-10

我有一个带有目录页面的简单 NSIS 脚本,用户可以在其中选择要安装应用程序的目录。请参阅下面的示例,如果应用程序已安装,它将从注册表或 www 根目录或“program files\publisher\product name”中获取值。

问题是,当我单击目录页面上的浏览并选择特定目录(例如:c:\test)时,当我关闭浏览对话框时,定义 PRODUCT_NAME 会自动添加到路径:c:\test\Invoice Management Workflow 。如何避免产品名称被自动添加”?

!define PRODUCT_NAME "Invoice Management Workflow"

!insertmacro MUI_DEFINES
!insertmacro MUI_PAGE_WELCOME
Page directory DirPre
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
!insertmacro MUI_UNPAGE_INSTFILES

Function DirPre
    ; set the INSTDIR to 
    ReadRegStr $0 HKLM "Software\${PRODUCT_PUBLISHER}\${PRODUCT_NAME}" "InstallDirectory"
    ${If} $0 != ""
        StrCpy $INSTDIR $0
        Abort
    ${Else}
        ; get the install dir from reg
        ReadRegStr $0 HKLM "SOFTWARE\Microsoft\InetStp" "PathWWWRoot"
        ${If} $0 != ""
            StrCpy $INSTDIR $0
        ${EndIf}
    ${EndIf}
FunctionEnd

这与InstallDir指令有关,引用手册:

请注意该字符串的部分 如果在最后一个 \ 之后将使用 用户选择“浏览”,并且可能是 附加回字符串中 安装时间(要禁用此功能,请结束 带有 \ 的目录(这将需要 要包含的整个参数 带引号)。

所以你可能想要Installdir "$programfiles\${PRODUCT_PUBLISHER}\${PRODUCT_NAME}\"

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

选择后添加浏览安装目录“${PRODUCT_NAME}”后的 NSIS 目录页面 的相关文章

  • 为什么某些安装程序需要在运行程序之前重新启动计算机?

    我对部署桌面应用程序相当陌生 所以这是我第一次为我的软件构建安装程序 目前 我安装软件后第一次运行它时 它崩溃了 之后 它运行良好 我仍在调试此问题 但我注意到在安装后和运行软件之前立即重新启动似乎可以修复此崩溃 某些安装程序要求您在运行软
  • 如何在 conda 中从一个文件安装多个包而不创建新环境?

    我从当前环境缺少的包的 yml 文件中获取了这些 我如何在当前环境中安装这些 channels defaults dependencies appdirs 1 4 3 py36h28b3542 0 asn1crypto 0 24 0 py3
  • Bower 安装 self_signed_cert_in_chain

    我正在 Windows 中使用 git bash 构建一个角度应用程序 到目前为止 我已经能够使用 yo 搭建脚手架 没有问题 但是当我尝试发出以下命令时 有人可以指出我来解决这个问题吗 Bower 安装 Angular Bootstrap
  • MATLAB - 从目录读取文件?

    我希望从目录中读取文件并对每个文件迭代执行操作 此操作不需要更改文件 我知道我应该为此使用 for 循环 到目前为止我已经尝试过 FILES ls path to folder for i 1 size FILES 1 STRU pdbre
  • Nuxt.js 安装错误

    我已经尝试安装 nuxt app 应用程序几次了 我已经在终端中使用 npm 和yarn 并以管理员身份在 powershell 中运行了它 我在创建应用程序时继续遇到错误 我在下面包含了错误日志以供参考 我think认为问题出在这个抛出错
  • 运行 flutter doctor 吐出错误:标准错误:致命:坏对象 HEAD

    我已经从官方网站安装了 Flutter 和 Android Studio 我是 Git GitHub 移动开发和 Android 开发的新手 我试图在命令提示符 Windows 10 中运行 flutter doctor 命令 但是 它会以
  • CUDA NSight 未随 Windows 8 上的 CUDA 5.0 安装文件一起安装? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 据我所知 Nvidia 网站上没有 Nsight Eclipse 的下载链接 它说它将由 CUDA 5 安装本机安装 但并没有随CUDA安装一起安装
  • 无法在 Emacs 中打开 plantuml 模式

    我使用的是 Emacs 24 3 1 我安装了MELPA http melpa milkbox net 的版本plantuml mode https github com zwz plantuml mode via M x package
  • NSIS获取参数

    to get n 0值作为字符串 不需要选项 传递给安装程序 我不太明白这个函数的工作原理是什么 GetParameters input none output top of stack replaces with e g whatever
  • 安装后步骤未成功完成 MySQL Mac OS Sierra

    pyEnv Anants MacBook Pro litibackend anantchandra brew postinstall mysql gt Postinstalling mysql gt usr local Cellar mys
  • 目录的 MIME 类型

    操作系统目录的 MIME 类型是什么 当我尝试使用其内容检测目录的 MIME 类型时 我得到text plain charset utf 8在Ubuntu上 在 Ubuntu 上 目录 mimetype 是inode directory 如
  • VS 代码 ssh;服务器安装路径

    我正在尝试更改 VS Code 服务器文件夹安装位置 该功能最近已实现 我找到了以下参考资料 1 https github com microsoft vscode remote release issues 472 2 https sta
  • 如何复制Makefile中的目录?

    我有一个目录images 我想复制到build images 从 Makefile 中 该目录可能包含多个级别的子目录 最优雅的方法是什么 我想 避免每个目录都复制完整的目录make运行 即不cp r 保证一致性 即如果文件在images
  • 如何在 Mac OS X 10.9 上安装和使用最新的 Git?

    我从 sourceforge 下载了 Git 2 4 3http git scm com download mac http git scm com download mac对于我的 Macbook Pro OS X 10 9 5 然后安装
  • 如何获取通过网络驱动器访问的文件的 UNC 路径?

    我正在 VC 中开发一个应用程序 其中网络驱动器用于访问文件 驱动器由用户手动分配 然后在应用程序中选择驱动器 这会导致驱动器并不总是映射到相同的服务器 我该如何获取此类文件的 UNC 路径 这主要是为了识别目的 这是我用来将普通路径转换为
  • PHP 中的基本 URL

    我有一个两难的困境 它已经困扰我很长一段时间了 我有一个本地测试服务器 其设置如下 127 0 0 1 我的网站在离线模式下如下所示 127 0 0 1 websitename index php 我的网站实时版本如下所示 websiten
  • 如何打包java web应用程序

    我们公司开发了一个基于Struts2 Spring Hibernate的Web应用程序 老板要我制作一张包含JRE Tomcat MySQL以及我们的产品的安装光盘 这样客户只要点击installMe exe之类的 按照向导就可以完成安装
  • 如何创建具有有效签名的预配置安装程序(MSI 或 EXE)?

    我们希望用户下载我们的 Windows 软件的预配置安装程序 预配置数据包含基于用户帐户数据的设置 定制将在 Linux 上运行的 Java 服务器中完成 我们需要对这些安装程序进行数字签名 不幸的是 由于安全政策的原因 我们无法在这些服务
  • 创建 MSI 的最佳工具[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我是设置项目创建的新手 现在我正在使用 Visual Studio 2008 为我的项目创建安装文件 msi 我对在安装向导中创建自己的自
  • Directory.CreateDirectory 延迟问题?

    我正在尝试创建一个远程目录 然后向其中写入一个文件 每隔一段时间 应用程序就会在尝试写入文件时失败并出现 System IO DirectoryNotFoundException 当我写入文件时 我使用返回的 DirectoryInfo 对

随机推荐

  • 角度 url 添加不需要的字符

    我有一个项目 在本地工作时 URL 工作正常 方法是 本地主机 9000 URL 将变为 http 本地主机 9000 由于我做了一些更改 现在转到 http localhost 9000 带感叹号 另外 其他 URL 也会变得很奇怪 例如
  • argparse 支持多个独占参数吗?

    假设我有两组论点 您可以使用每个组中任意数量的参数 但不能在组之间混合参数 有没有办法自定义冲突的参数argparse模块 我尝试过使用方法add mutually exclusive group但这不是我要找的 我提出了一个补丁 或者更确
  • 使用 jdk8 Conscrypt 为 http2 启用 ALPN

    我一直在寻找如何实施密码加密SSL 提供商使用conscrypt openjdk uber 1 4 1 jarjdk8支持ALPN为了制作一个http2 使用apache httpclient 5 到服务器的连接为jdk8默认不支持ALPN
  • 从浏览器使用 Selenium

    我想从 Web 应用程序运行和控制浏览器窗口 以在另一个站点上自动执行某些操作 例如帐户创建等 所以我的问题是 有没有办法直接从浏览器使用 selenium 来做到这一点 在这种情况下该怎么做 我知道有用于 JS 的 selenium we
  • MessageBody 写入器/读取器

    我正在努力让泽西岛得到 支持GSON为此 我读到我需要实施一个自定义消息体编写器 and 消息体读取器 现在我的问题是我找不到这两个接口的任何明确定义 来自文档 public interface MessageBodyWriter
  • barplot() 中的标签

    我正在尝试将名称添加到条形图的列中 每组中有 2 个条形图共享相同的名称 我正在使用这样的代码 l lt c 6286 2212 9961 5831 8703 6990 9952 9948 r lt c 2721 5663 0 3961 0
  • 如何在列表视图中添加复选框?

    我有一个问题 被困了一段时间 我不知道如何在列表中添加复选框 例如 如果我有一个项目列表 我希望能够检查它们 我的xml代码如下
  • 如何将应用程序下载到 iOS 模拟器?

    最近的更新应用程序商店在模拟器中不可用 我想下载 twitter facebook 等应用程序来实现一些 UITests 我怎样才能做到这一点 这只能使用物理设备来实现 据我所知 App Store 从未在模拟器中可用
  • 如何在 swagger 上添加多个示例项目

    需要有关如何在 swagger 上执行此操作的帮助 SWG Property property LineItems type array SWG Items ref definitions LineItem SWG Definition d
  • 为什么 typeof(Function.prototype) 是函数

    我知道原型是对象文字这一事实 因此可以在它们上定义方法和属性 Function prototype有一些方法 如 apply call bind toString 等 所以我认为函数的原型应该是对象文字 但我运行以下代码并遇到了这个Func
  • 连续分析范围内的随机数生成器

    我可以使用以下命令从一定范围内创建随机数 Random rand new Random int num rand nextInt 10 System out println Generated Random Number between 0
  • CSS3 旋转动画

    我已经查看了相当多的演示 但不知道为什么我无法让 CSS3 spin 运行 我正在使用 Chrome 的最新稳定版本 小提琴 http jsfiddle net 9Ryvs 1 div margin 20px width 100px hei
  • JavaScript 功能和 UI 更新

    我有一个以下函数 它将相对定位的元素从现在的位置滑动 1000px for var i 0 i lt 1000 i my element css left parseInt my element css left 10 1 这不会产生滑动效
  • 使用 JavaScript Promise 实现多线程

    只是学习承诺 JavaScript 是单线程的吗 那么当它使用 fetch api 发出 http 请求时 这一切都发生在一个线程中吗 那么它如何管理 PromisePool 的并发呢 var p Promise p then stuff1
  • 应用栅格 netlogo gis 时扩展异常:1944553

    我正在尝试使用 GIS 扩展中的 apply raster 将 ascii 加载到 Netlogo 中 虽然我之前多次这样做过 尽管不是使用这个特定的 ascii 但 netlogo 现在会抛出以下错误 extension exceptio
  • 如何使用键值对列表查询数据库

    假设我有一个包含 3 列的表 ID 类别 名称 我想这样查询表 获取对应的行 Category Cat1 AND Name ABC OR Category Cat2 AND Name ABC OR Category Cat2 AND Nam
  • HTML 表单提交不适用于 Spring Boot 2.3.1

    从 Spring Boot 2 2 7 切换到 Spring Boot 2 3 1 后 针对我的具体情况提交表单时的实体转换不再起作用 类别 java Entity Getter Setter public class Category i
  • App Engine 全文搜索 API (Java)

    我一直在尝试使用 Google AppEngine 的实验性搜索 API 我使用的是 SDK 1 6 6 到目前为止 我可以将条目添加到索引并在我的开发环境中搜索它 当我部署应用程序时 我仍然可以向索引添加条目 但是当我尝试 执行搜索 我得
  • 在超过 2 个页面上使用 php 变量

    我使用了一个表单将两个变量从一个页面发送到另一个页面 然后我希望用户能够单击链接 停留在网站上 然后在第三页上仍然可以使用变量 第一页 效果很好
  • 选择后添加浏览安装目录“${PRODUCT_NAME}”后的 NSIS 目录页面

    我有一个带有目录页面的简单 NSIS 脚本 用户可以在其中选择要安装应用程序的目录 请参阅下面的示例 如果应用程序已安装 它将从注册表或 www 根目录或 program files publisher product name 中获取值