相关疑难解决方法(0)

在 Inno Setup 安装结束时写入 32/64 位特定注册表项

我想用 Inno Setup 创建一个安装程序,这是我第一次使用这个工具。
\n我\xe2\x80\x99m 试图做的是用更详细的自制安装程序(意味着Setup.exe 中的Setup.exe)包装现有软件的现有安装程序。

\n\n

到目前为止的研究对我有用的是要求安装程序(Inno Setup *.exe)运行包含的安装程序(实际的软件安装程序)。
\n为什么我需要另一个安装程序?因为我想给它一些额外的功能。

\n\n

特别是:我想在安装结束时添加一个注册表项,作为最后一步,适合相关的位系统(32/64 位)。这就是我请求专家帮助的地方。(主要关心的问题)

\n\n

我的问题详细如下:

\n\n
    \n
  1. 我设法使用 Inno Setup 部分添加密钥[Registry]。但是,[Registry]似乎总是在[Run]\xe2\x80\x93 之前运行,但我需要在安装后添加密钥(添加到安装本身创建的注册表路径中),而不是之前,所以我删除了已经起作用的内容(只是以错误的顺序) 在下面[Registry]。为了在主安装后完成 reg-add ,我发现了两个过程AfterInstallCurStepChanged/ ssPostInstallDeinitializeSetup这似乎不太适合我的担忧(但我想AfterInstall这就是我正在寻找的(?!),因为仅此而已应该是在之后,如果之前的安装已经失败(?!),我认为它不会运行。
  2. \n
  3. 我不知道在现有路径下添加注册表项(字符串)的 Pascal 语法。我可以将其添加到 下[Registry],但是当涉及到[Code]- 部分时,即使我现在对 Inno Setup 给定函数等做了很多研究,我也感到有点迷失。
  4. \n
  5. 第三个问题是注册表中的路径有所不同,具体取决于它是 32 位还是 64 位系统。所以我实际上需要一个额外的查询,在添加一个或另一个路径/键之前检查位系统(因为程序本身的安装已经根据位版本创建了路径),我找到了函数(IsWin64布尔值),现在尝试将函数(位版本查询)与过程(AfterInstall)混合起来,即使对我这样的初学者来说也是错误的。另外,我尝试创建一个 if-else-query,编译器告诉我我做错了。if IsWin64 then...有效,但添加 else 则无效。
  6. \n
\n\n

所以理论上的 …

registry installation inno-setup pascalscript

5
推荐指数
1
解决办法
4382
查看次数

标签 统计

inno-setup ×1

installation ×1

pascalscript ×1

registry ×1