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 编写应用程序以针对包执行查询并更改值。

这是一个真实的例子: