3

我正在尝试即时了解 InstallShield (2009)/InstallScript,因为我正在修改其他人的安装脚本。

安装过程中的其中一个对话框以前有一个文本框,要求 SQL Server 实例,假设某个数据库名称。现在,我刚刚完成了一项增强功能,使您可以选择任何数据库名称,而不仅仅是默认名称,并且我需要在此对话框中添加一个字段,以便用户可以输入选择的数据库名称。猴子看,猴子做,只需创建一个新控件并复制和调整表单为第一个文本框提供的任何功能 - 很容易,对吧?

嗯...这里有问题。似乎“SdShowDlgEdit1”表单是随 InstallShield 一起提供的通用东西,并且在任何需要一个文本框的对话框中都可以使用。更改该表单,它在任何地方都会更改它被称为...所以现在我有一个虚假的第二个文本框出现在我的安装中,之前有一个文本框。

哎呀。撤消更改,并更改对“SdShowDlgEdit2”的引用,这是 - 你猜对了 - InstallShield 需要 2 个文本框的对话框的标准形式。现在那太好了....除了以前的开发人员在我之前到达那里并在该表单中添加了一个“浏览”按钮,以便他需要第二个文本框来包含文件夹路径。我不想要那个“浏览”按钮,也不能删除它。

所以我想,为什么我不创建自己的自定义表单,而不是受到其他人的关注呢?所以我克隆了表单,将新实例重命名为“EnterDbDetails”,删除“浏览”按钮,使表单看起来恰到好处。

然后我回到 InstallScript 重定向到“EnterDbDetails”,发现该EzDefineDialog函数需要我传入表单的“资源 ID”。现在又是什么...... 12018......太好了......填写所有必要的细节,编译,构建并试一试。看起来很可爱,所有正确的默认值都填充到两个文本框中 - 但是,嘿!为什么有浏览按钮?为什么标签上的文字不是我设置的?

回到 InstallScript,检查资源 ID - 原来的“SdShowDlgEdit2”也有一个资源 ID 12018。嗯,这很好地解释了这一点。愚蠢的是,InstallShield 允许您拥有两个具有相同 ID 的表单,但是无论如何......所以让我们回到我的“EnterDbDetails”表单并更改 ID......

在此处输入图像描述

...但资源标识符属性是只读的! 怎么回事?

所以现在我不能使用任何标准表单,也不能使用自定义表单,因为它不允许我更改资源 ID。

我难住了。谁能解释一下你应该如何做这样的事情,这真的应该是世界上最简单的事情吗?

4

4 回答 4

4

在 InstallScript 和 InstallScript MSI 项目中创建新的自定义对话框


网站引述(2015 年版):

要创建自定义对话框,您需要执行以下一般步骤:

  1. 使用新建对话框向导将新的自定义对话框添加到您的项目中。有关详细信息,请参阅使用新对话框向导将新自定义对话框添加到 InstallScript 或 InstallScript MSI 项目。
  2. 将控件添加到对话框。有关详细信息,请参阅向 InstallScript 或 InstallScript MSI 项目中的对话框添加控件。
  3. 创建一个脚本函数,将对话框加载到内存中,在屏幕上显示,处理最终用户与对话框控件的交互,并在用户完成后关闭对话框。有关详细信息,请参阅使用 InstallScript 实现自定义对话框。
于 2012-03-02T02:57:31.037 回答
1

创建新对话框: 打开对话框视图。对话框视图位于视图列表的用户界面部分。右键单击所有对话框资源管理器,然后单击新建对话框。对话框向导打开。单击下一步关闭欢迎面板。在对话框模板面板中,单击内部向导面板,然后选中让我在用户界面序列中插入此对话框复选框。在用户界面面板中,选择用户界面顺序列表中的安装。在对话框列表中,选择 InstallWelcome。根据这些选择,InstallShield 将在 InstallWelcome 对话框之后按顺序插入新对话框。在 Dialog Position and Condition 面板中,保留默认设置,然后单击 Finish。您的新对话框出现在对话框列表中。右键单击对话框并选择重命名。重命名对话框 WelcomeBitmap。使用相同的技术,您可以在安装的用户界面中插入额外的对话框。

在这一步中,您将修改刚刚创建的 WelcomeBitmap 对话框:首先,创建一个尺寸为 300 x 150 的位图(使用 Microsoft Paint 等程序)。打开 Dialogs 视图。展开 WelcomeBitmap 对话框的节点。单击英语(美国)打开对话框编辑器。单击对话框顶部的对话框粗体标题文本框。在文本字段中,键入欢迎位图。这会更改对话框的主标题。单击对话框顶部的 Dialog Normal Description 文本框。在文本字段中,键入显示我的欢迎位图。这会更改对话框的描述。单击对话框控件工具栏上的位图按钮并使用光标在对话框上拖动一个框。将高度设置为 150,将宽度设置为 300。在文件字段中,浏览到您在步骤 1 中创建的位图文件。

于 2014-03-13T11:16:54.333 回答
0

通过自定义标准 InstallShield 对话框,如 sdWelcome、sdFinish 和 sdFinishReboot,您将能够使用对话框默认脚本 API 和执行的自定义

于 2018-03-14T11:52:55.107 回答
0

您需要在安装设计器的附加工具部分下的直接编辑器中找到对话框表中的 ResourceID(到唯一的东西)。

于 2015-09-21T18:23:18.920 回答