2013-09-17 2 views
0

У меня есть пользовательское действие, которое выдает диалог. Я хотел бы подавить пользовательское действие, используя свойство условия, если мой установщик запускается в тихом режиме (т.е../Q в msiexec). Как ты это делаешь?Состояние msiexec в тихом режиме?

Я знаю, что могу использовать свойство:

MSIexec/я .msi/дп SUPPRESS_MY_CUSTOM_ACTION = 1

, а затем

использование Состояние свойство:

НЕ SUPPRESS_MY_CUSTOM_ACTION

Но, было бы лучше просто знать, могу ли я в тихом режиме.

ответ

1

Пользовательские действия, запланированные в последовательности выполнения, редко должны иметь пользовательский интерфейс. Редкое исключение - это диалог прерывания, повтора, отказа, когда повторная попытка может привести к успешной установке. Пользовательское действие должно проверить встроенный в UILevel property, чтобы определить, нужно ли отображать пользовательский интерфейс.

Возможно, вы не хотите полностью отключать пользовательское действие, так как определенные предположения по умолчанию, возможно, могут быть выполнены без пользовательского интерфейса. В противном случае вы также можете рассмотреть возможность факторизации пользовательского действия в последовательности пользовательского интерфейса и выполнения последовательности.

+0

Да, это свойство UILevel хорошо работало. Благодаря! –

1

Согласен с тем, что говорит Кристофер. Но в дополнение к возможности отключить UILevel (который работает либо в состоянии действия, либо внутри самого кода действия), есть другой подход. Измените способ подключения своего пользовательского интерфейса от вызова чего-то вроде MessageBox, чтобы вместо этого позвонить MsiProcessMessage (с помощью, например, INSTALLMESSAGE_USER), чтобы Установщик Windows отображал окно сообщения. Он будет внутренне обрабатывать эквивалент проверки UILevel, но обратите внимание, что другой подход не будет работать из контрольного события.

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