#c #wix #windows-installer
#c #wix #установщик Windows
Вопрос:
У меня есть пользовательский диалог WiX ConfigDlg
с моими собственными элементами управления в нем:
lt;Fragmentgt; lt;UI Id="My_WixUI_Mondo"gt; lt;Publish Dialog="ConfigDlg" Control="Back" Event="NewDialog" Value="CustomizeDlg"gt;1lt;/Publishgt; lt;Publish Dialog="ConfigDlg" Control="Next" Event="NewDialog" Value="VerifyReadyDlg"gt;1lt;/Publishgt; lt;/UIgt; lt;/Fragmentgt;
Мне нужно запрограммировать кнопку «Далее», чтобы проверить, что пользователь ввел в мой ConfigDlg, и отключить экран «Далее», если такая проверка не удалась. Поэтому я изменил свой XML, чтобы вызвать свое idCA_NextBtn
пользовательское действие как таковое:
lt;Fragmentgt; lt;UI Id="My_WixUI_Mondo"gt; lt;Publish Dialog="ConfigDlg" Control="Back" Event="NewDialog" Value="CustomizeDlg"gt;1lt;/Publishgt; lt;Publish Dialog="ConfigDlg" Control="Next" Event="DoAction" Value="idCA_NextBtn"gt;1lt;/Publishgt; lt;/UIgt; lt;/Fragmentgt;
где:
lt;Binary Id="caBinDll" SourceFile="$(var.SourceFldrBld)ca_Installer.dll" /gt; lt;CustomAction Id="idCA_NextBtn" Execute="immediate" BinaryKey="caBinDll" DllEntry="caNextButton" Return="check" /gt;
Моя caNextButton
функция в библиотеке пользовательских действий вызывается, но я не уверен, как перейти к следующему экрану (или VerifyReadyDlg
) с него:
extern "C" UINT APIENTRY caNextButton(MSIHANDLE hInstall) { return ERROR_SUCCESS; }
Или для имитации?
lt;Publish Dialog="ConfigDlg" Control="Next" Event="NewDialog" Value="VerifyReadyDlg"gt;1lt;/Publishgt;
Ответ №1:
Элементы управления могут иметь несколько уровней управления (элементов публикации), и они обрабатываются по порядку. Что вы делаете, так это сначала вызываете пользовательское действие и устанавливаете для него значение SomeProperty равным null или 1, а затем получаете два взаимоисключающих события.
опубликовать пользовательское имя действия doAction Условие 1 (верно/всегда)
опубликовать SpawnDialog CustomBrandedMessageBoxDialog Условие, а не какое-либо свойство
опубликуйте новый каталог верифицированиедля условия некоторого свойства