2012-06-15 3 views
2

Я создал установщик с помощью Wix 3.6 RC. У меня есть флажок в пользовательском интерфейсе диалога, который отключен и не установлен. Рядом с ним есть кнопка «Проверить». Когда я нажимаю эту кнопку, пользовательское действие запускается (немедленно) и устанавливает значение параметра, которое определяет, включен ли флажок. Вот код:Сохранение значения CheckBox в WiX

<Control Id="VirtualCheckBox" 
       Type="CheckBox" 
       CheckBoxValue="1" 
       X="35" Y="100" 
       Width="160" Height="20" 
       Disabled="yes" 
       Text="!(loc.VirtualizationDlg_ChkBox)" Property="ENABLEVIRTUALIZATION"> 
    <Condition Action="enable"><![CDATA[INTEGRATED = "1"]]></Condition> 
    <Condition Action="disable"><![CDATA[INTEGRATED = "0"]]></Condition> 
</Control> 

Я храню это значение флажка в реестре:

<Component Id="Virtualization_RegistryEntries" Guid="GUID-IS-HERE"> 
    <Condition>Not Installed</Condition> 
    <RegistryKey Root="HKCU" 
       Key="Software\!(loc.CompanyName)\!(loc.ProductName)"> 
     <RegistryValue Type="string" Name="Virtualization" Value="[ENABLEVIRTUALIZATION]" KeyPath="yes"/> 
    </RegistryKey> 
    </Component> 

Теперь я должен сделать это:
1) Если пользователь не нажмет кнопку Проверить: Регистрацию получает значение 0
2) Если он нажимает кнопку (CA получает false и флажок остается отключенным): Registry получает значение 0
3) Если он нажимает кнопку и установлен флажок, он не устанавливает флажок: Registry получает значение 0
4) Если он нажал кнопку и установил флажок, и он установил флажок: Registry получает значение 1

Mine не работает только при одном условии, когда он проверяет это, реестр действительно получает 1, но либо он отключен или он не установлен, реестр ничего не получает.

Как решить эту проблему?

ответ

-1

Вы пытались дать своим переменным значение по умолчанию?

<Property Id="ENABLEVIRTUALIZATION" Value="0" /> 

Что-то простое, что должно сделать трюк!

+0

Хорошо, я попробовал это, флажок установлен, но остается отключенным в пользовательском интерфейсе, и запись в реестре отображается как 0 (отлично). Но теперь у меня есть действительное действие кнопки «Проверить», и флажок разрешает (но все еще проверяется). и я продолжаю установку, я видел, что значение реестра все равно 0 (о человеке !!!), а должно быть 1. Вот где проблема. –

+1

Причина, по которой это не работает, заключается в том, что флажок снят только в том случае, если свойство, которое оно использует, не имеет значения. Назначив значение по умолчанию используемому им свойству, независимо от того, какой контроль будет проверен. Я все еще ищу решение этой проблемы. – jcmcbeth

Смежные вопросы