Wix 中密码文本框出现奇怪的双框 UI
Strange double frame for password text box in Wix UI
当我在自定义对话框中使用属性密码设置为 "yes"
的控件编辑时
<Control Id="TextBoxPass" Type="Edit" Password="yes" Property="SQLPASSWORD">
文本框在Windows服务器2012.In其他版本的Windows服务器(2008、2008R2、2003)看起来像普通文本框。我怎样才能改变这种行为? (我是说删除双框)
快速回答:据我所知,您无法更改此行为。
长答案:如果您 运行 Microsoft Spy++ 并搜索这两个控件,您将看到常规编辑的 class 是 RichEdit20W
, 而密码是 Edit
.
然后检查 Window 样式,您会发现 WS_BORDER
。这是边界的罪魁祸首。在 WiX 和 MSI 中,无法对控件的 window 样式进行编码,因此我认为没有解决此问题的方法。
此外,某些样式(如 ES_PASSWORD)可以使用 Orca 和编辑 table Control
中的 Attributes
列进行更改。解决方案是将两个编辑都设置为密码,并在构建后手动将非密码控件的 Attributes
设置编辑为 196611
.
如果您想自动执行此过程,我认为您可以使用 MSI API 编写应用程序以针对包执行查询并更改值。
这是一个真实的例子:
当我在自定义对话框中使用属性密码设置为 "yes"
的控件编辑时<Control Id="TextBoxPass" Type="Edit" Password="yes" Property="SQLPASSWORD">
文本框在Windows服务器2012.In其他版本的Windows服务器(2008、2008R2、2003)看起来像普通文本框。我怎样才能改变这种行为? (我是说删除双框)
快速回答:据我所知,您无法更改此行为。
长答案:如果您 运行 Microsoft Spy++ 并搜索这两个控件,您将看到常规编辑的 class 是 RichEdit20W
, 而密码是 Edit
.
然后检查 Window 样式,您会发现 WS_BORDER
。这是边界的罪魁祸首。在 WiX 和 MSI 中,无法对控件的 window 样式进行编码,因此我认为没有解决此问题的方法。
此外,某些样式(如 ES_PASSWORD)可以使用 Orca 和编辑 table Control
中的 Attributes
列进行更改。解决方案是将两个编辑都设置为密码,并在构建后手动将非密码控件的 Attributes
设置编辑为 196611
.
如果您想自动执行此过程,我认为您可以使用 MSI API 编写应用程序以针对包执行查询并更改值。
这是一个真实的例子: