【问题标题】:Wixtoolset dual listboxWixtoolset 双列表框
【发布时间】:2019-07-12 19:33:55
【问题描述】:

是否可以使用自定义操作使用 wixtoolset 进行双列表框自定义对话框?

我实际上是在尝试这样做: https://www.advancedinstaller.com/user-guide/tutorial-combobox-listbox.html#combolist-scenario1

解决方案的一半在这里:https://www.firegiant.com/wix/tutorial/standard-libraries/custom-actions-and-user-interface/

我使用 WcaAddTempRecord(来自 wixtoolset sdk 的 wcautil)填充了我的第一个列表框。问题是当将列表项“移动”到第二个列表框时,我无法让第二个列表框显示添加的数据。我什至尝试发布 NewDialog 事件以显示具有相同双列表框控件的第二个对话框,这似乎是有关此主题的各种帖子中提出的解决方法。那里也没有成功;我只是无法让第二个列表框显示其内容。

我确实查看了列表框上 WcaAddTempRecord 的 wixtoolset 源,但唯一的用法被注释掉了。

任何指针?

【问题讨论】:

    标签: wix


    【解决方案1】:

    双列表框:Stefan Kruger - MSI MVP - 在这里有一个很好的示例:http://www.installsite.org/pages/en/msi/articles/MultiListBox/index.htm。请注意,MSI 对话框事件存在问题,因此您需要实际使用两个对话框来确保正确刷新对话框。从概念上讲,它很笨拙,但示例很好。

    Dark.exe:您可以使用 WiX 的 dark.exe 工具来反编译 Stefan 示例中的 MSI。然后,您可以提取对话框 WiX 标记并将其合并到您自己的 WiX 项目中。 This is not trivial.

    dark.exe 示例:下面是命令行。 Here is more(第 4 节)。

    dark.exe -x outputfolder MySetup.msi
    

    链接(只是为了方便检索,上面的链接应该可以):

    【讨论】:

    • 感谢您的回答!我开始意识到我正在浪费时间尝试使用本机 sdk 自定义我的对话框;弹出一个 C# Windows 窗体对话框更容易,让我可以做我想做的事。无论如何,在我的情况下,可能没有理由在本地这样做。 CodeProject 上有很多关于如何使用 C# Windows 窗体的示例。
    猜你喜欢
    • 1970-01-01
    • 2010-11-11
    • 1970-01-01
    • 1970-01-01
    • 2021-12-17
    • 1970-01-01
    • 1970-01-01
    • 2011-05-26
    • 1970-01-01
    相关资源
    最近更新 更多