2012-03-01 104 views
3

我试图了解InstallShield(2009)/ InstallScript,因为我正在修改其他人的安装脚本。如何在InstallShield中创建自定义对话框?

之前的安装过程中的一个对话框上有一个文本框,要求SQL Server实例,假设某个数据库名称。现在我刚刚完成了一项增强功能,可以选择任何数据库名称,而不仅仅是缺省名称,而且我需要向该对话框添加一个字段,以便用户可以输入所选的数据库名称。猴子看到,猴子会做,只是做一个新的控制,并复制和适应形式为第一个文本框的任何功能 - 很容易,对吧?

嗯......问题在这里。看起来,“SdShowDlgEdit1”表单是一个随InstallShield一起提供的通用事物,并且在任何需要一个文本框的对话框中都可以使用它。改变这种形式,并且它在所有被调用的地方都会发生变化...所以现在我有一个虚假的第二个文本框出现在我的安装中,只要以前有一个文本框。

糟糕。撤消更改,并将引用更改为“SdShowDlgEdit2”,即您猜对它 - InstallShield的标准格式,用于需要2个文本框的对话框。现在,这将是伟大的....除了以前的开发人员在我之前到达那里,并添加一个“浏览”按钮到该窗体的地方,他需要第二个文本框包含文件夹路径。我不想要那个“浏览”按钮,我不能删除它。

所以我想,为什么我不创建自己的自定义形式,而不是得到任何人的脚趾?因此,我克隆了表单,将新实例重命名为“EnterDbDetails”,删除“浏览”按钮并使窗体看起来恰到好处。

然后我回到InstallScript中重定向到“EnterDbDetails”,并发现EzDefineDialog函数要求我传入窗体的“资源ID”。现在又是什么...... 12018 ......很棒......填写所有必要的细节,编译,构建,并给它一个旋转。看起来很可爱,所有正确的默认值被填入两个文本框 - 但嘿!为什么浏览按钮在那里?为什么标签上的文字不是我设定的?

返回到InstallScript,检查资源ID - 原来的“SdShowDlgEdit2”也有一个资源ID 12018.那么,这很好地解释。愚蠢的InstallShield将允许你有两种形式使用相同的ID,但不管......所以,让我们回到我的“EnterDbDetails”的形式,改变ID ...

enter image description here

...但资源标识符属性是只读的! WTF?

因此,现在我不能使用任何标准格式,而且我也不能使用自定义格式,因为它不会让我更改资源ID。

我很难过。任何人都可以请解释你应该如何做这样的事情,这真的应该是世界上最简单的事情?

回答

4

Creating New Custom Dialogs in InstallScript and InstallScript MSI Projects


从网站(2015版)的报价:

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

  1. 使用新的对话框向导为您的项目添加一个新的自定义对话框。有关更多信息,请参阅使用新建对话框向导将新的自定义对话框添加到InstallScript或InstallScript MSI项目。
  2. 将控件添加到对话框。有关更多信息,请参阅在InstallScript或InstallScript MSI项目中将控件添加到对话框。
  3. 创建一个脚本函数,将对话框加载到内存中,将其显示在屏幕上,处理最终用户与对话框控件的交互,并在用户完成对话框时关闭对话框。有关更多信息,请参阅使用InstallScript实现自定义对话框。
+0

谢谢!可惜我不得不从头开始创建,并且无法复制以前的对话框。幸运的是,它并不复杂。 – 2012-03-04 08:40:58

+1

这个答案容易受到链接腐烂的影响。 – 2015-07-28 18:46:56

1

创建一个新的对话框: 打开对话框视图。对话框视图位于视图列表的用户界面部分。 用鼠标右键单击所有对话框资源管理器,然后单击新建对话框。对话框向导打开。单击“下一步”关闭“欢迎”面板。 在“对话框模板”面板中,单击“内部向导面板”,然后选中让我在用户界面序列中插入此对话框复选框。 在用户界面面板中,选择用户界面顺序列表中的安装。在对话框列表中,选择InstallWelcome。根据这些选择,InstallShield会在InstallWelcome对话框后立即插入新对话框。 在对话位置和条件面板中,保留默认设置,然后单击完成。您的新对话框出现在对话框列表中。 右键单击对话框并选择重命名。重命名对话框WelcomeBitmap。 使用相同的技术,您可以在安装的用户界面中插入其他对话框。

在此步骤中,您将修改你刚刚创建的WelcomeBitmap对话框:由150 打开对话框查看测量300 首先,创建位图(使用像微软画图程序)。 展开WelcomeBitmap对话框的节点。点击英语(美国)打开对话框编辑器。 单击对话框顶部的对话粗体标题文本框。在文本字段中,输入欢迎位图。这改变了对话的主标题。 单击对话框顶部的对话框正常描述文本框。在文本字段中,输入显示我的欢迎位图。这改变了对话框的描述。 单击对话框控制工具栏上的位图按钮并使用光标在对话框上拖动一个框。将高度设置为150,将宽度设置为300. 在“文件”字段中浏览到您在步骤1中创建的位图文件。 重建项目(通过按F7)并运行它(通过按CTRL + F5)后, “欢迎位图”对话框将出现在“安装欢迎”对话框后。

0

您需要编辑安装设计器中“其他工具”部分下直接编辑器中找到的对话框表中的ResourceID(属于唯一内容)。