基于先前安装的刻录选项页面的默认值

Defaulting values from Burn Options page based on previous install

我一直在开发一个新的 Burn 引导程序,它需要一个自定义选项页面。我已经让页面查看它需要的方式和行为方式,但需要根据上一次安装中选择的值默认选项页面中的值。这些值存储在与引导程序一起安装的程序的 INI 文件中。

我试过将 Burn GUI 值存储在注册表中,因为我看到有一个用于 Burn 的,但它似乎没有将注册表项读入 GUI 变量(或者在用户单击 'install').有没有办法做到这一点?

一个例子:

刻录变量(绑定到主题文件中的 GUI 控件)

<Variable Name="txtServer" bal:Overridable="yes" Type="string" Value=""/> 
<Variable Name="txtDatabase" bal:Overridable="yes" Type="string" Value=""/> 
<Variable Name="txtUserID" bal:Overridable="yes" Type="string" Value="id"/> 
<Variable Name="txtPwd" bal:Overridable="yes" Type="string" Value="pwd"/> 

<util:RegistrySearch Id="CustCode" Variable="txtCustCode" Root="HKLM" Key="SOFTWARE\[WixBundleManufacturer]\[WixBundleName]" Value="CustCode"  Win64="no" Format="raw" Result="value" />
<util:RegistrySearch Id="Server" Variable="txtServer" Root="HKLM" Key="SOFTWARE\[WixBundleManufacturer]\[WixBundleName]" Value="Server" Win64="no" Format="raw" Result="value"/>
<util:RegistrySearch Id="Database" Variable="txtDatabase" Root="HKLM" Key="SOFTWARE\[WixBundleManufacturer]\[WixBundleName]" Value="Database" Win64="no" Format="raw" Result="value" />
<util:RegistrySearch Id="DBID" Variable="txtUserID" Root="HKLM" Key="SOFTWARE\[WixBundleManufacturer]\[WixBundleName]" Value="DBID" Win64="no" Format="raw" Result="value" />
<util:RegistrySearch Id="DBPWD" Variable="txtPwd" Root="HKLM" Key="SOFTWARE\[WixBundleManufacturer]\[WixBundleName]" Value="DBPWD" Win64="no" Format="raw" Result="value" />

注册表值正在读入变量,但未显示在 GUI/Options 页面中。显示这一点非常重要,这样用户就可以看到安装程序将使用的设置。如果可能的话,最好从 INI 文件而不是注册表中读取。

任何有关如何完成此操作的建议都将非常有帮助!

您使用的是 v3.10 或更高版本吗? 4496 在 3.10.0.1502 中实现,增加了对将 Variable 的值加载到文本框中的支持。