Поделиться через


Метод Session.Message

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

Если поле записи 0 содержит строку форматирования, она используется для форматирования данных в других полях. Кроме того, если сообщение является ошибкой, предупреждением или сообщением пользователя, попытка найти шаблон сообщения в таблице ошибок для текущей базы данных с использованием номера ошибки, найденного в поле 1 записи для типов сообщений и возвращаемых значений.

Синтаксис

Session.Message(
  kind,
  record
)

Параметры

kind

Параметр типа должен быть одним из следующих значений. Чтобы отобразить поле сообщения с кнопками и значками, вычислите значение типа, добавив стандартные стили полей сообщений, используемые MessageBox и MessageBoxEx в msiMessageTypeError, msiMessageTypeWarning или msiMessageTypeUser. Дополнительные сведения см. в разделе "Примечания" ниже.

Константа Значение
msiMessageTypeFatalExit
&H00000000
Преждевременное завершение, возможно, неустранимая из памяти.
msiMessageTypeError
&H01000000
Отформатированный сообщение об ошибке [1] — это номер сообщения в таблице ошибок.
msiMessageTypeWarning
&H02000000
Отформатированный предупреждающий сообщение [1] — это номер сообщения в таблице ошибок.
msiMessageTypeUser
&H03000000
Сообщение запроса пользователя [1] — это номер сообщения в таблице ошибок.
msiMessageTypeInfo
&H04000000
Информативное сообщение для журнала, не отображаемое.
msiMessageTypeFilesInUse
&H05000000
Список файлов, используемых для замены.
msiMessageTypeResolveSource
&H06000000
Запрос на определение допустимого исходного расположения.
msiMessageTypeOutOfDiskSpace
&H07000000
Недостаточно места на диске.
msiMessageTypeActionStart
&H08000000
Начало действия, [1] имя действия, описание [2], шаблон [3] для сообщений ACTIONDATA.
msiMessageTypeActionData
&H09000000
Данные действия. Поля записи соответствуют шаблону сообщения ACTIONSTART.
msiMessageTypeProgresss
&H0A000000
Сведения о индикаторе выполнения. См. описание полей записи ниже.
msiMessageTypeCommonData
&H0B000000
Чтобы включить параметр "Отмена", установите значение [1] на 2 и [2] значение 1.
Отключение набора кнопки "Отмена" [1] до 2 и [2] до 0

 

record

Обязательный объект Record , содержащий поле для конкретного сообщения.

Возвращаемое значение

Константа Значение
msiMessageStatusError
-1
msiMessageStatusNone
0
msiMessageStatusOk
1
msiMessageStatusCancel
2
msiMessageStatusAbort
3
msiMessageStatusRetry
4
msiMessageStatusIgnore
5
msiMessageStatusYes
6
msiMessageStatusNo
7

 

Замечания

Поля записи сообщений

Ниже описаны определения полей записи при передаче msiMessageTypeProgress в качестве типа сообщения.

Поле 1 указывает тип сообщения о ходе выполнения. Значение других полей зависит от значения в этом поле. Возможные значения, которые можно задать в поле 1, приведены ниже.

Название сообщения Значение Описание поля 1
MasterReset 0 Сбрасывает индикатор выполнения и задает ожидаемое общее количество галок в строке.
Actioninfo 1 Предоставляет сведения, связанные с сообщениями о ходе выполнения, отправляемых текущим действием.
ProgressReport 2 Увеличивает индикатор выполнения.
ProgressAddition 3 Позволяет действию (например, CustomAction) добавлять галочки в ожидаемое общее количество хода выполнения.

 

Значение Поля 2 зависит от значения поля 1, как показано ниже.

Значение поля 1 Описание поля 2
0 Ожидаемое общее количество галок в индикаторе выполнения.
1 Число тиков, перемещаемых индикатором хода выполнения для каждого сообщения ActionData. Это поле игнорируется, если поле 3 равно 0.
2 Число тиков, перемещенных индикатором выполнения.
3 Количество тиков, добавляемых к общему ожидаемому ходу выполнения.

 

Значение Поля 3 зависит от значения поля 1 следующим образом.

Значение поля 1 Значение поля 3 Описание поля 3
0 0 Переадресация индикатора хода выполнения (слева направо)
  1 Обратная полоса хода выполнения (справа налево)
1 0 Текущее действие отправляет явные сообщения ProgressReport.
  1 Увеличивает индикатор хода выполнения по количеству галок, указанных в поле 2 при каждом отправке сообщения ActionData.
2 Не используется
3 Не используется

 

Значение Поля 4 зависит от значения поля 1 следующим образом.

Значение поля 1 Значение поля 4 Описание поля 4
0 0 Выполняется выполнение. В этом случае пользовательский интерфейс может вычислить и отобразить оставшееся время.
  1 Создание скрипта выполнения. В этом случае пользовательский интерфейс может отобразить сообщение, чтобы подождать, пока установщик завершит подготовку установки.
1 Не используется
2 Не используется
3 Не используется

 

Отображение полей сообщений

Чтобы отобразить поле сообщения с кнопками и значками, вычислите значение типа, добавив стандартные стили полей сообщений, используемые MessageBox и MessageBoxEx в msiMessageTypeError, msiMessageTypeWarning или msiTypeUser. Доступные параметры кнопки для VBScript: vbOKOnly (МБ_OK), vbOKCancel (МБ_OKCANCEL), vbAbortRetryIgnore (МБ_ABORTRETRYIGNORE), vbYesNoCancel (МБ_YESNOCANCEL), vbYesNo (МБ_YESNO) и vbRetryCancel (МБ_RETRYCANCEL). Доступные параметры значков для VBScript: vbCritical (МБ_ICONERROR), vbQuestion (МБ_ICONQUESTION), vbExclamation (МБ_ICONWARNING) и vbInformation (МБ_ICONINFORMATION).

Например, следующий вызов отправляет сообщение msiMessageTypeError со значком vbExclamation и кнопками vbYesNo.

Session.Message &H01000034, record

Если настраиваемое действие вызывает метод Message , настраиваемое действие должно обрабатывать отмену пользователем и возвращать msiDoActionStatusUserExit.

Requirements

Требование Значение
Версия
Установщик Windows 5.0 в Windows Server 2012, Windows 8, Windows Server 2008 R2 или Windows 7. Установщик Windows 4.0 или установщик Windows 4.5 в Windows Server 2008 или Windows Vista. Установщик Windows в Windows Server 2003 или Windows XP
DLL-библиотеки
Msi.dll
IID
IID_ISession определяется как 000C109E-0000-0000-C000-0000000000046