我目前正在尝试扩展我们的安装程序,让用户可以指定在开始菜单下创建快捷方式的程序组的名称。(我知道这是一个有点过时的概念)
我正在使用 InstallShield 2015。
我创建了一个名为 [PROGRAMGROUP_NAME] 的可本地化属性。这会自动创建一个 {ID_STRING46},我已将其设置为所需的默认值。到目前为止,一切都很好。我设法使用链接到上述属性的编辑控件创建了一个自定义对话框。
现在到了棘手的部分:在快捷方式下,在“程序菜单”下,我首先要添加一个带有程序组名称的文件夹,在该文件夹下放置几个快捷方式。如果我输入 [PROGRAMGROUP_NAME] 这就是名字的字面意思。如果我使用 {ID_STRING46},它使用默认值,而不是我在对话框中输入的值。
顺便说一句,当我尝试将 ID_STRING46 重命名为更有意义的名称时,其他事情开始出错,所以我保持原样。
这里出了什么问题?如何获取要用于文件夹名称的属性值?
编辑
我现在正在尝试使用自定义操作,但我无法定义它。我设置属性的对话框在 CostFinalize 之后,所以我假设我必须使用 SetDirectory - 但我在定义它时遇到了麻烦。我收到一条错误消息,指出“无法访问网络位置”
编辑
我已经成功地前进了一步。我已经手动向目录表添加了一个带有键 DIRECTORY_PROGRAM_GROUP 的目录(重要的是它的全部大写以使其公开)。然后,在运行对话框后,我使用自定义操作将该目录设置为所需的值 [ProgramMenuFolder][PROGRAM_GROUP_NAME],并修改了要在该文件夹中创建的快捷方式。
似乎工作得很好,但是,现在卸载时不再删除程序组......