Я пытаюсь использовать диалог ошибок из DoAction CustomAction. Я знаю, что не могу использовать MsiProcessMessage
, на данный момент я использую MessageBox
, но я знаю, что это не рекомендуется. Может ли кто-нибудь сказать мне, как использовать таблицу ошибок из DoAction CustomAction?Обработка ошибок из DoAction Пользовательские действия
То, что я хочу сделать, это проверить, является ли число больше, чем 10000, и если он выдаст ошибку:
WcaGetIntProperty(L"DIAGNOSTICCHANNELS",&szDiagnosticChannels);
if (szDiagnosticChannels > 10000) MessageBox(NULL, szError, szTitle, MB_OK|MB_ICONEXCLAMATION);
Похоже, вы делаете GetProperty, чтобы вернуть значение свойства и хотите показать ошибку, если она слишком велика. Как планировать настраиваемый тип действия 19 непосредственно перед вашим пользовательским действием, используя условие, основанное на значении свойства DiagnosticChannels (?), Чтобы показать ошибку и выйти? Таким образом, вам не нужно показывать ошибку внутри вашего центра сертификации. –
@StephenConnolly Это отличная идея - это будет работать для некоторых моих пользовательских действий, но у меня есть другие, для которых это не сработает, поскольку я должен проверить, есть ли только буквы и т. Д. Спасибо Также есть способ, которым он мог быть предупреждением? –
Тип 19 - только ошибка. Если вы хотите получить предупреждение, вам нужно написать CA, чтобы справиться с этим. К сожалению, есть проблемы с использованием ProcessMessage() для отображения ящиков сообщений на стороне клиента, например. в волшебнике. –