Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wix 是否可以粘贴到windows安装程序中的屏蔽编辑控件中?_Wix_Windows Installer_Custom Action - Fatal编程技术网

Wix 是否可以粘贴到windows安装程序中的屏蔽编辑控件中?

Wix 是否可以粘贴到windows安装程序中的屏蔽编辑控件中?,wix,windows-installer,custom-action,Wix,Windows Installer,Custom Action,从我需要的最终结果开始: 客户可以在安装过程中将正确格式的产品密钥从剪贴板粘贴到输入框中 我现在的位置: 我们使用WiX来创建我们的MSI。我们目前使用一个蒙面编辑控件,它工作得很好。按下“下一步”按钮时,已使用自定义操作完成产品密钥验证。产品密钥验证应保持不变,只有输入法是问题所在 我花了最后一天的时间研究实现这一目标的可能方法,并提出了一些想法,尽管我不确定其中是否有可行的方法。我已经排除了尝试在粘贴上触发自定义操作的可能性,因为我知道MSI无法捕获该事件 所以,我的想法是“从剪贴板粘贴”按

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

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

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

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

我已经读过关于编写自己的UI控制器的可能性。我知道这是一项艰巨的任务,但在这个阶段没有什么是不可能的,我只是不知道从哪里开始

我的最后一个想法是,尽管我没有考虑如何实现它,但我将通过将我的蒙面编辑控件更改为标准编辑控件,这显然将允许粘贴完整的产品密钥,尽管没有使用自定义操作来验证它的格式是否正确,我将不再进一步讨论。但如果客户要手动输入产品密钥,则需要自动添加破折号


有谁能解释一下我的任何想法的可行性,以及如何实施这些想法或实现我的目标的任何其他方法吗?

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

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

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

大多数人只使用标准编辑控件,让他们的CA进行验证。你是对的,MaskedEdit控件无法处理此问题。“从剪贴板”的概念很有趣。我从来没有尝试过这样做,但也许我会找到一些空闲时间来尝试一下。我曾经尝试过同样的方法来做这件事,但它对我不起作用:MaskedEdit控件保持空白。我有一个表示许可证密钥的公共属性和一个在发布事件中使用的常规属性。我添加了这里列出的发布行,如图所示。我使用的是WIX3.8。日志文件显示正在调用的CA和正在设置的两个属性,一个是剪贴板中的值,另一个是“1”。但蒙面控制从未改变。如果我在安装程序中后退,然后前进,控件将填充属性的新值。我不再能够访问为此编写的代码,因此恐怕无法确定发生了什么。我的第一个想法是,这可能与设置蒙面编辑控件的值的格式有关?