从我需要的最终结果开始: 客户可以在安装期间将具有正确格式的产品密钥粘贴到剪贴板中的输入框中。
我现在在哪里: 我们使用WiX创建我们的MSI。我们目前使用蒙版编辑控件,工作正常。按“下一步”按钮时,已使用自定义操作完成产品密钥验证。产品密钥验证应保持不变,只有输入法才是问题。
我花了最后一天研究实现这一目标的可能方法,并提出了一些想法,尽管我不确定它们是否有效。我已经排除了尝试在粘贴上触发自定义操作的原因,因为我知道MSI无法捕获该事件。
所以,我的想法是'从剪贴板粘贴'按钮。这将触发一个自定义操作,该操作将捕获剪贴板项,决定它是否看起来像一个产品密钥(这将是简单的部分),然后以某种方式将其粘贴到编辑控件中。注意我怎么说编辑控件,我不确定它是否可以使用蒙版编辑控件,我不确定它甚至可以使用标准编辑控件。我已经有了一个自定义操作,可以检查许可文本是否已被查看,这是通过查找窗口和许可所在的“richedit”类窗口并检索滚动位置来实现的。我原以为这个方法可能允许我将编辑控件设置为我的剪贴板键,但是,我不确定这是否可行。
我已经读过有关编写自己的UI控制器的可能性。我知道这是一项艰巨的任务,但现阶段没有任何规定,我根本不知道从哪里开始。
我最后的想法,虽然我对如何实现它没有任何想法,但是将我的蒙版编辑控件更改为标准编辑控件,这显然会允许粘贴完整的产品密钥,尽管不使用自定义验证它格式正确的行动我仍然没有进一步前进。但是,如果客户要手动键入产品密钥,则需要进行某种自动添加破折号。
任何人都可以阐明我的任何想法的可行性以及如何实施这些想法或以其他方式实现我的目标吗?
答案 0 :(得分:1)
我已经设法使用我最初想到的“从剪贴板粘贴”选项来完成此操作。我在表单中添加了一个按钮,该按钮调用查询剪贴板的自定义操作,如果成功,则在安装程序中设置两个属性。一个包含格式化的产品密钥,一个是基本属性,用于判断剪贴板操作是否成功。屏蔽的编辑控件链接到产品密钥属性,并通过刷新控件
<Publish Event="Reset" Value="0" Order="3">ClipboardSuccess = 1</Publish>
产品密钥填充在屏蔽的编辑控件中。