首页 文章

如何在InstallShield中创建自定义对话框?

提问于
浏览
3

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

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

嗯......问题在这里 . 似乎“SdShowDlgEdit1”表单是InstallShield随附的一个通用的东西,并且无论你有一个需要一个文本框的对话框,它都可以在任何地方使用 . 改变那个形式,它会随处调用......所以现在我的安装中出现了一个虚假的第二个文本框,只要之前有一个文本框 .

哎呀 . 撤消更改,并将引用更改为“SdShowDlgEdit2”,这是 - 您猜对了 - InstallShield的标准表单,用于需要2个文本框的对话框 . 现在这将是伟大的....除了前面的开发人员在我之前到达那里并为该表单添加了一个“浏览”按钮,他需要第二个文本框来包含文件夹路径 . 我不想要“浏览”按钮,我无法删除它 .

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

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

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

enter image description here

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

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

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

4 回答

  • 4

    Creating New Custom Dialogs in InstallScript and InstallScript MSI Projects


    从网站引用(2015年版):

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

    • 使用“新建对话框向导”向项目添加新的自定义对话框 . 有关详细信息,请参阅使用“新建对话框向导”将新的自定义对话框添加到InstallScript或InstallScript MSI项目 .

    • 向对话框添加控件 . 有关更多信息,请参阅在InstallScript或InstallScript MSI项目中向对话框添加控件 .

    • 创建一个脚本函数,将对话框加载到内存中,在屏幕上显示,处理最终用户与对话框控件的交互,并在用户完成后关闭对话框 . 有关更多信息,请参阅使用InstallScript实现自定义对话框 .

  • 1

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

  • 0

    您需要在对话框表中编辑ResourceID(以独特的方式),该表可在Installation Designer的“其他工具”部分的“直接编辑器”中找到 .

  • 0

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

    在此步骤中,您将修改您的WelcomeBitmap对话框刚创建:首先,创建一个位图(使用像Microsoft Paint这样的程序),测量300乘150.打开Dialogs视图 . 展开WelcomeBitmap对话框的节点 . 单击“英语(美国)”以打开“对话框编辑器” . 单击对话框顶部的“对话框粗体 Headers ”文本框 . 在“文本”字段中,键入“欢迎位图” . 这会更改对话框的主 Headers . 单击对话框顶部的“对话框正常说明”文本框 . 在“文本”字段中,键入“显示我的欢迎位图” . 这会更改对话框的说明 . 单击“对话框控件”工具栏上的“位图”按钮,然后使用光标在对话框上拖动一个框 . 将“高度”设置为150,将“宽度”设置为300.在“文件”字段中,浏览到在步骤1中创建的位图文件 . 重建项目后(按F7)并运行它(按CTRL F5),“欢迎位图”对话框将出现在“安装欢迎”对话框之后 .

相关问题