Inno Setup 选择一个目录来安装预定义集中的文件

2024-04-19

在这种情况下,我需要将文件安装到特定目录,但在不同的计算机上它可能位于不同的文件夹中,所以我需要检查哪个是正确的。

例如,我有一个文件,需要将其安装在A文件夹或B文件夹或C文件夹,取决于计算机有A or B or C。所以我需要先检查一下计算机是否有B,然后将文件安装到B文件夹等

我知道我可以在文件后使用检查DestDir,如果该目录不存在,那么它不会安装任何东西,但我需要的是将该文件安装到其他目​​录。

提前致谢。


In the ,检查是否存在预定义的目录集并记住您找到的目录。然后使用 a 将默认安装路径设置为找到的路径脚本常量 https://jrsoftware.org/ishelp/index.php?topic=scriptconstants in the DefaultDirName指示 https://jrsoftware.org/ishelp/index.php?topic=setup_defaultdirname.

您可能还想设置DisableDirPage=yes https://jrsoftware.org/ishelp/index.php?topic=setup_disabledirpageUsePreviousAppDir=no https://jrsoftware.org/ishelp/index.php?topic=setup_usepreviousappdir.

[Setup]
DefaultDirName={code:GetDirName}
DisableDirPage=yes
UsePreviousAppDir=no

[Files]
Source: "MyProg.exe"; DestDir: "{app}"
Source: "MyProg.chm"; DestDir: "{app}"

[Code]

var
  DirName: string;

function TryPath(Path: string): Boolean;
begin
  Result := DirExists(Path);
  if Result then
  begin
    Log(Format('Path %s exists', [Path]))
    DirName := Path;
  end
    else
  begin
    Log(Format('Path %s does not', [Path]))
  end;
end;

function GetDirName(Param: string): string;
begin
  Result := DirName;
end;

function InitializeSetup(): Boolean;
begin
  Result :=
    TryPath('C:\path1') or
    TryPath('C:\path2') or
    TryPath('C:\path3');

  if Result then
  begin
    Log(Format('Destination %s selected', [DirName]))
  end
    else
  begin
    MsgBox('No destination found, aborting installation', mbError, MB_OK);
  end;
end;

而不是使用DefaultDirName={code:GetDirName},您还可以使用DestDir: "{code:GetDirName}"在相应的条目中[Files]部分(如果适用)。

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

Inno Setup 选择一个目录来安装预定义集中的文件 的相关文章

  • 如何配置额外/不同的迁移文件夹

    我和一位同事正在从事共享一些模型的不同项目 因此 我们通过 git 子模块共享模型 此外 我们还希望能够共享迁移 这样 我同事的迁移就会在文件夹中db migrate other db我的项目 如何配置 Rails 迁移以在这个额外文件夹中
  • 安装前检查 Java 是否存在

    我正在为 jar 应用程序创建 Inno Setup 安装程序 我现在想做的是在继续安装之前检查 java 是否存在 所以我只需要确保用户能够运行 java jar my app jar 我现在正在做的是 Code function Ini
  • PHP 的项目结构

    我是 PHP 新手 想了解 php 项目的目录结构 我有Java方面的经验 在java中我们有src包含java源文件 WEB INF包含lib和jsp页面 PHP 中有类似的标准目录结构吗 我们在 php 中也有分层吗 就像我们在 jav
  • 在 setup.py build 中包含项目根目录中的 python 文件

    我试图在运行时创建的 build lib 目录中包含一个 python 文件 python setup py install 特别是 我想包含一个简单的配置文件 definitions py 它定义了一个 ROOT DIR 变量 然后由子包
  • 有没有办法重置 Julia 中的当前工作目录?

    假设当前工作目录是C 保存 jl文件的目录 然后我将cwd切换到一些子文件夹来执行一些任务 有没有办法直接将cwd重置回C 之后 即最初的cwd 或者 是否可以独立于当前工作目录来定位正在运行的 jl 文件所在的目录 无需事先将 cwd 保
  • 从 C# 项目内的自定义文件夹获取文件

    第一次海报 也是新手 我创建了一个 C winform 应用程序 我添加了一个 文档 文件夹 其中添加了 5 个 PDF 文件 在我的 Form1 中 我添加了一个按钮 在按钮单击事件中 我尝试从 文档 文件夹中获取文件 我用谷歌搜索了一下
  • 使用curl命令将文件保存到特定文件夹

    在 shell 脚本中 我想从某个 URL 下载文件并将其保存到特定文件夹 我应该使用什么特定的 CLI 标志来将文件下载到特定文件夹curl命令 或者我怎样才能得到这个结果 我不认为你可以给出curl的路径 但你可以CD到该位置 下载并C
  • 每个用户“类型”的 PHP 子文件夹

    我有 3 个子文件夹upload文件夹 我的代码如下所示 if isset SESSION u type SESSION u type 3 files scandir path 3 path is set somewhere above 它
  • 将 AppMutex 与静默 Inno Setup 一起使用

    我在 Inno Setup 脚本中使用 AppMutex 来确保产品在安装更新时不再运行 这基本上工作得很好 但是 当使用 verysilent 命令参数运行此设置时 会显示一个对话框 尽管非常安静 表明程序仍在运行 应该关闭 由于程序本身
  • Inno Setup:如何观察变量值或写入调试输出?

    在 Inno Setup 中调试时如何观察变量的值 如何打印一些内容来调试输出 Thanks 目前没有调试监视窗口 但当调试器在断点处停止时 您只需将鼠标悬停在要检查的变量上即可 要将某些内容打印到调试输出 请使用Log http jrso
  • 如何查找网站上的所有链接/页面

    是否可以找到任何给定网站上的所有页面和链接 我想输入一个 URL 并生成该站点所有链接的目录树 我查看过 HTTrack 但它下载了整个站点 我只需要目录树 查看链接检查器 https linkchecker github io linkc
  • 如何重命名c#中当前由Windows资源管理器打开的文件夹

    在 C 中重命名文件夹时 System IO Directory Move throws System IO IOException 消息 访问被拒绝 如果该文件夹或任何子文件夹当前由 Windows 7 资源管理器窗口打开 使用命令行RE
  • Inno Setup 选择一个目录来安装预定义集中的文件

    在这种情况下 我需要将文件安装到特定目录 但在不同的计算机上它可能位于不同的文件夹中 所以我需要检查哪个是正确的 例如 我有一个文件 需要将其安装在A文件夹或B文件夹或C文件夹 取决于计算机有A or B or C 所以我需要先检查一下计算
  • Python os.chdir() 似乎不起作用

    我似乎无法更改 python 中的目录 import os os getcwd C Users Jon Folder IdbyGenotype os chdir r C Users Jon Folder IdbyGenotype thiso
  • 在 Inno Setup 中添加 4 个许可证页面

    我遵循了马丁的回答here https stackoverflow com questions 34592002 how to create two licensefile pages in inno setup在我的 Inno Setup
  • Visual Studio 中的解决方案文件夹是什么?

    我有一个 Visual Studio 2008 解决方案 我想在解决方案中包含一个真实的文件夹 但不是在项目级别 而是在解决方案级别 我注意到您可以右键单击该解决方案并添加一个解决方案文件夹 但它显示为一些白色文件夹 我怀疑它到底应该是什么
  • 有没有办法在完成某个页面后在 Inno Setup 中提取 .zip 文件?

    所以我基本上有一个 zip 文件 tmp 目录 并希望将其内容提取到 tmp 但只有当我的第三种形式完成它的工作时 而不是更早 原因是 因为在第三种形式中我从互联网上下载了这个 zip并将其保存到 tmp 现在 在此之后我想将这些文件提取到
  • HTML 页面中的目录选择器

    如何在 html 页面中创建目录选择器 如果我使用输入文件元素 我只能选择文件 但我需要选择目录 我需要这样做 因为用户应该在他的计算机内选择正确的路径 有什么解决办法吗 试试这个 我想它会对你有用
  • Ruby 有 mkdir -p 吗? [复制]

    这个问题在这里已经有答案了 可能的重复 如何在 ruby 中递归创建目录 https stackoverflow com questions 3686032 how to create directories recursively in
  • 从 AppleScript 路径中提取文件扩展名

    我正在编写一个 Apple 脚本 最终将为 EyeTV 的所有 iTunes 导出标记广告 但我遇到了 AppleScript 路径的一个简单问题 EyeTV 应用程序将其返回为录制位置 这是上下文 set recordingID to 3

随机推荐