4

从我需要的最终结果开始: 客户可以在安装过程中将格式正确的产品密钥从剪贴板粘贴到输入框中。

我现在在哪里: 我们使用 WiX 创建我们的 MSI。我们目前使用一个工作正常的蒙面编辑控件。按下“下一步”按钮时,产品密钥验证已使用自定义操作完成。产品密钥验证应该保持不变,只有输入法是问题。

我花了最后一天研究实现这一目标的可能方法并提出了一些想法,尽管我不确定它们中的任何一个是否可行。我已经排除了尝试在粘贴上触发自定义操作的可能性,因为我知道 MSI 无法捕获该事件。

所以,我的想法是“从剪贴板粘贴”按钮。这将触发一个自定义操作,该操作将捕获剪贴板项目,确定它是否看起来像产品密钥(这将是简单的部分),然后以某种方式将其粘贴到编辑控件中。请注意我怎么说编辑控件,我不确定它是否可以使用蒙版编辑控件,我不确定它是否可以使用标准编辑控件。我已经有一个自定义操作,可以检查是否已查看许可证文本,这是通过找到许可证所在的窗口和“richedit”类窗口并检索滚动位置来实现的。我曾认为这种方法可以让我将编辑控件设置为我的剪贴板键,但我不确定这是否可行。

我已经阅读了关于编写自己的 UI 控制器的可能性。我知道这是一项艰巨的任务,但现阶段不排除任何可能,我只是不知道从哪里开始。

我的最终想法,虽然我不知道如何实现它,但将我的蒙面编辑控件更改为标准编辑控件,这显然允许粘贴完整的产品密钥,尽管没有使用自定义操作来验证它的格式正确,我仍然不会进一步前进。但是,如果客户要手动输入产品密钥,这将需要某种类型的自动添加破折号。

任何人都可以阐明我的任何想法的可行性以及如何实施它们或实现我的目标的任何其他方式吗?

4

1 回答 1

1

我已经设法使用我最初想到的“从剪贴板粘贴”选项来做到这一点。我在我的表单中添加了一个按钮,它调用一个自定义操作来查询剪贴板,如果成功,则在安装程序中设置两个属性。一个包含格式化的产品密钥,一个是基本属性,用于判断剪贴板操作是否成功。被屏蔽的编辑控件链接到产品密钥属性,通过刷新控件,

<Publish Event="Reset" Value="0" Order="3">ClipboardSuccess = 1</Publish>

产品密钥填充在屏蔽的编辑控件中。

于 2012-10-08T07:50:46.233 回答