Inno Setup - 从另一个对话框打开目录浏览对话框而不隐藏它

2024-01-19

我正在使用这段代码:Inno Setup - 如何创建自定义表单以允许我找到要解压缩的文件? https://stackoverflow.com/questions/44145316/inno-setup-how-to-create-a-custom-form-that-allows-me-to-locate-the-files-to-d/44214348?noredirect=1#comment75503426_44214348如何从另一个对话框打开目录浏览对话框而不隐藏它?


打开的对话框BrowseForFolder https://jrsoftware.org/ishelp/index.php?topic=isxfunc_browseforfolder不幸的是,函数被实现为具有WizardForm作为业主窗口。这有效地将所有其他打开的对话框移到了后面WizardForm,同时显示“浏览”对话框(请注意,这些对话框并未隐藏,它们只是被WizardForm).


你可以做什么:

  • 重新实施BrowseForFolder从头开始。这是一项艰巨的任务。

  • 您可以使用CreateInputDirPage https://jrsoftware.org/ishelp/index.php?topic=isxfunc_createinputdirpage而不是你的解决方案,我在你的一开始就建议你上一个问题 https://stackoverflow.com/q/44145316/850848.
    有关示例,请参见Inno Setup 如何在浏览对话框中显示网络? https://stackoverflow.com/q/39096540/850848
    尽管我必须承认,现在我明白了,您需要允许不同的文件夹中存在不同的文件,但这可能不再是最好的解决方案。

  • 作为解决方法,您可以通过以下方式滥用不同的浏览对话框实现:,这不会遇到问题BrowseForFolder:

    var
      FakePage: TInputDirWizardPage;
    
    procedure BrowseForFolderEx(var Directory: String);
    begin
      FakePage.Values[0] := Directory;
      FakePage.Buttons[0].OnClick(FakePage.Buttons[0]);
      Directory := FakePage.Values[0];
    end;
    
    procedure InitializeWizard();
    var
      NewFolderName: string;
    begin
      NewFolderName := SetupMessage(msgButtonNewFolder);
      FakePage := CreateInputDirPage(wpWelcome, '', '', '', False, NewFolderName);
      FakePage.Add('');
    end;
    
    function ShouldSkipPage(PageID: Integer): Boolean;
    begin
      Result := (PageID = FakePage.ID);
    end;
    

    Use BrowseForFolderEx代替BrowseForFolder.

    procedure SelectFileBrowseButtonClick(Sender: TObject);
    var
      Dir: string;
    begin
      Dir := GetSelectFilePath;
      BrowseForFolderEx(Dir);
      SelectFilePathEdit.Text := AddBackslash(Dir);
    end;
    
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Inno Setup - 从另一个对话框打开目录浏览对话框而不隐藏它 的相关文章

  • 在 Windows 上安装 MonoDevelop:满足 Gtk# 要求的解决方法?

    我已经安装了Mono 版本2 11 4 在我的Windows 7系统上 现在我打算安装单一开发 版本 3 0 4 7 然而 当我开始单一开发安装程序我收到以下错误消息 并且安装终止 好的 这可以通过获取轻松解决Gtk 安装程序来自here
  • Python:从源代码安装模块

    当然你们都知道答案 而且很容易 但我是 python 新手 我在网上找到了一段代码 读取雅虎财经的股价 usr bin env python Copyright c 2007 2008 Corey Goldberg email protec
  • IIS:添加功能

    我需要使用 IIS 7 0 中的 IP 地址和域限制功能编辑 IP 规则 但在我的 Windows 7 计算机上 我的 IIS 中不存在此功能 有谁知道如何向 IIS 添加此功能 我无法在任何地方找到下载 或 IIS 中用于添加功能的部分
  • Inno Setup:如何在选中的复选框上显示(隐藏/取消隐藏)密码

    我在输入查询页面中添加了一个复选框 以便在选中时使用它向我显示未发现的密码 但我不知道该怎么做 我已经创建了以下过程 但这个过程并没有改变我添加输入时的 true false 值 此过程添加了我完成这项工作的新文本框 请你帮助我好吗 pro
  • 使用C#在SQL Server上执行sql文件

    我有很多程序 视图 函数等文件 我想在 SQL Server 2005 2008 上的适当数据库中执行这些文件 创建组件 还有一点是我想使用 C 来执行它们 另一点需要提及的是 我希望应用程序也可以在远程 SQL Server 上执行此文件
  • Inno Setup:如何根据代码更改语言文件

    我使用自己的语言文件 isl 而不是使用 Inno Setup 的默认语言文件 它允许我自定义一些消息 但现在 我想要每种语言文件有两个版本 一个用于首次安装 一个用于更新 但是 是否可以从代码中选择一个文件 如果是 该怎么做 也许有一些比
  • 在 Inno Setup 中实现脚本常量时出现“预期标识符”或“原型无效”

    因此 鉴于此功能 我在GetRoot ROOTPage Values 0 线 我希望它告诉我ROOTPage没有定义 const DefaultRoot C IAmGRoot Var ROOTPage TInputQueryWizardPa
  • 如何使用 setuptools Windows 安装程序在开始菜单中创建快捷方式

    我想为我的 Python Windows 安装程序包创建开始菜单或桌面快捷方式 我正在尝试遵循https docs python org 3 4 distutils builtdist html the post 安装脚本 https do
  • 在 Inno Setup 中单击“下一步”按钮时验证自定义页面上的数据

    我已经设法获得一个基本脚本来显示向导 使用CreateInputFilePage 供用户识别我用来更新 XML 文件中某些设置的文件位置 但是 我想对所选文件的输入进行一些基本检查 而不是简单地接受用户提供的任何内容 例如 如果用户在内容无
  • 为什么vcredist_x86.exe不能安静安装?

    我需要安静地安装 vcredist x86 exe Microsoft Visual C 2010 Redistributable Package 我在 cmd exe 上输入 vcredist x86 exe q 但是 vcredist
  • Vista幻影目录

    我们有一个程序 安装程序会检查配置文件是否存在 如果存在 它不会复制该文件 它假设用户已修改其配置文件并希望保留这些修改 不幸的是 这是一个 Vista 之前的应用程序 它将配置文件保存在 Program Files 中 问题是 如果你在重
  • 如何生成Mac应用程序的安装包?

    如何为 OS X 二进制文件以及一些配置和脚本文件创建单个安装程序包 最终文件夹应如下所示 任何帮助 将不胜感激 谢谢 如果您希望将各种东西放置在不同的位置 安装程序在这里 文档在那里 支持文件在这里等等 它们也非常适合提供安装体验的可配置
  • 在主目录中安装库

    在 Linux Ubuntu 中 我尝试运行一个工具 但它显示错误 库丢失 我无权在系统中安装任何内容 或者根本无法从我的用户帐户执行 sudo 是否可以在我的主目录 没有 sudo 中安装缺少的库 在我的例子中为 libstdc so 6
  • 如何制作一个简单包装 EXE 文件的 MSI

    经过大量实验后 我得出的结论是 Windows Installer 是一种糟糕的技术 但客户需要 MSI 文件 那么 如何创建一个 MSI 文件 将 EXE 文件提取到临时目录 并使用与传递给 EXE 文件相同或相似的选项运行它 MSI 的
  • 在 Visual Studio 安装程序中使用 Windows 环境变量作为注册表值

    嘿 我想使用 Windows 环境变量作为注册表项的值 不幸的是我不能简单地写一些像 systemroot system32 MyScreensaver scr 正如您所猜测的 我想将一些注册表值指向我自己的应用程序 例如自动启动和屏幕保护
  • 如何使用 Visual Studio 将文件版本嵌入 MSI 文件中?

    我的 C 程序有一个安装项目 该安装项目的属性中有一个版本 我希望生成的 MSI 文件嵌入此版本 这样我就可以在资源管理器中将鼠标悬停在该文件上并查看该文件的版本 我用的是VS2008 我怎样才能做到这一点 如果您只是将 版本 1 5 0
  • 在 Visual Studio 2012 中安装 OpenCV

    我正在尝试安装 OpenCV 来与 Visual Studio 一起使用 我使用的是2012Pro版本 但我认为它应该与vs10相同 我正在关注这个教程 http docs opencv org doc tutorials introduc
  • 使用 Inno Setup 更快地创建安装程序

    当我在大量文件 gt 2GB 上运行 Inno Setup 时 需要很长时间才能运行 我相信它把时间花在了压缩上 这应该是 CPU 限制的 但它只使用了几个 CPU 有没有办法将其分散到 许多 更多核心 具体来说 我正在处理这个提升发布存储
  • Inc 函数 Inno Setup

    这可能非常简单 但是当我尝试编译包含以下内容的程序时 Inc Count 在 Inno Setup 中我不断得到 未知标识符 Inc 我相信这就是在 Pascal 中递增整数的方式 并且对如何继续这里感到困惑 我正在使用 Inno Setu
  • 如何使用 ruby​​ 和命令行工具在 mavericks 中正确安装 cocoapod?

    这是我的设置 小牛队10 9 1 Xcode 5 0 2 哪个红宝石返回这个 Users quique123 rvm rubies ruby 1 9 3 p194 bin ruby 但 dvm install ruby 返回 Already

随机推荐