Compartilhar via


Método Session.Message

O método Message do objeto Session executa todas as operações de log habilitadas e adia a execução para o objeto do manipulador de interface do usuário associado ao mecanismo. O registro em log pode ser habilitado seletivamente para os vários tipos de mensagem. Consulte o método EnableLog.

Se o campo de registro 0 contiver uma cadeia de caracteres de formatação, ele será usado para formatar os dados nos outros campos. Caso contrário, se a mensagem for um erro, aviso ou mensagem de usuário, haverá uma tentativa de localizar um modelo de mensagem na tabela Error do banco de dados atual usando o número de erro encontrado no campo 1 do registro para tipos de mensagem e valores retornados.

Sintaxe

Session.Message(
  kind,
  record
)

Parâmetros

kind

É necessário que o parâmetro kind seja um dos valores a seguir. Para exibir uma caixa de mensagem com botões de push e ícones, calcule o valor de kind adicionando os estilos de caixa de mensagem padrão usados por MessageBox e MessageBoxEx a msiMessageTypeError, msiMessageTypeWarning ou msiMessageTypeUser. Para obter mais informações, consulte a seção de comentários abaixo.

Constante Significado
msiMessageTypeFatalExit
&H00000000
Término prematuro, possivelmente de memória insuficiente fatal.
msiMessageTypeError
&H01000000
Mensagem de erro formatada, [1] é o número da mensagem na tabela Error.
msiMessageTypeWarning
&H02000000
Mensagem de aviso formatada, [1] é o número da mensagem na tabela Error.
msiMessageTypeUser
&H03000000
Mensagem de solicitação de usuário, [1] é o número da mensagem na tabela Error.
msiMessageTypeInfo
&H04000000
Mensagem informativa para log, não para ser exibida.
msiMessageTypeFilesInUse
&H05000000
Lista de arquivos em uso que precisam ser substituídos.
msiMessageTypeResolveSource
&H06000000
Solicitação para determinar um local de origem válido.
msiMessageTypeOutOfDiskSpace
&H07000000
Mensagem de espaço insuficiente em disco.
msiMessageTypeActionStart
&H08000000
Início de ação, [1] nome da ação, [2] descrição, [3] modelo para mensagens ACTIONDATA.
msiMessageTypeActionData
&H09000000
Dados de ação. Os campos de registro correspondem ao modelo da mensagem ACTIONSTART.
msiMessageTypeProgress
&H0A000000
Informações da barra de progresso. Confira a descrição dos campos de registro abaixo.
msiMessageTypeCommonData
&H0B000000
Para habilitar o botão Cancelar, defina [1] como 2 e [2] como 1.
Para desabilitar o botão Cancelar, defina [1] como 2 e [2] como 0

 

record

Objeto Record obrigatório que contém um campo específico da mensagem.

Valor retornado

Constante Valor
msiMessageStatusError
-1
msiMessageStatusNone
0
msiMessageStatusOk
1
msiMessageStatusCancel
2
msiMessageStatusAbort
3
msiMessageStatusRetry
4
msiMessageStatusIgnore
5
msiMessageStatusYes
6
msiMessageStatusNo
7

 

Comentários

Campos de registro da mensagem

O conteúdo a seguir descreve as definições de campo de registro quando msiMessageTypeProgress é passado como o tipo de mensagem.

O campo 1 especifica o tipo da mensagem de progresso. O significado dos outros campos depende do valor neste campo. Os valores possíveis que podem ser definidos no Campo 1 são os seguintes.

Nome da mensagem Valor Descrição do campo 1
MasterReset 0 Redefine a barra de progresso e define o número total esperado de tiques na barra.
ActionInfo 1 Fornece informações relacionadas às mensagens de progresso a serem enviadas pela ação atual.
ProgressReport 2 Incrementa a barra de progresso.
ProgressAddition 3 Permite que uma ação (como CustomAction) adicione tiques ao número total esperado de progresso da barra de progresso.

 

O significado do Campo 2 depende do valor no Campo 1 da seguinte maneira.

Valor do campo 1 Descrição do campo 2
0 Número total esperado de tiques na barra de progresso.
1 Número de tiques que a barra de progresso move para cada mensagem ActionData. Esse campo será ignorado se o Campo 3 for 0.
2 Número de tiques que a barra de progresso moveu.
3 Número de tiques a serem adicionados ao progresso total esperado.

 

O significado do Campo 3 depende do valor no Campo 1 da seguinte maneira.

Valor do campo 1 Valor do campo 3 Descrição do campo 3
0 0 Barra de progresso Avançar (da esquerda para a direita)
  1 Barra de progresso Voltar (da direita para a esquerda)
1 0 A ação atual enviará mensagens ProgressReport explícitas.
  1 Incremente a barra de progresso pelo número de tiques especificado no Campo 2 sempre que uma mensagem ActionData for enviada.
2 Não usado
3 Não usado

 

O significado do Campo 4 depende do valor no Campo 1 da seguinte maneira.

Valor do campo 1 Valor do campo 4 Descrição do campo 4
0 0 A execução está em andamento. Nesse caso, a interface do usuário pode calcular e exibir o tempo restante.
  1 Criando o script de execução. Nesse caso, a interface do usuário pode exibir uma mensagem para aguardar enquanto o instalador termina de preparar a instalação.
1 Não usado
2 Não usado
3 Não usado

 

Exibição de caixas de mensagens

Para exibir uma caixa de mensagem com botões de push e ícones, calcule o valor de kind adicionando os estilos de caixa de mensagem padrão usados por MessageBox e MessageBoxEx a msiMessageTypeError, msiMessageTypeWarning ou msiTypeUser. As opções de botão de push disponíveis para VBScript são vbOKOnly (MB_OK), vbOKCancel (MB_OKCANCEL), vbAbortRetryIgnore (MB_ABORTRETRYIGNORE), vbYesNoCancel (MB_YESNOCANCEL), vbYesNo (MB_YESNO) e vbRetryCancel (MB_RETRYCANCEL). As opções de ícone disponíveis para VBScript são vbCritical (MB_ICONERROR), vbQuestion (MB_ICONQUESTION), vbExclamation (MB_ICONWARNING) e vbInformation (MB_ICONINFORMATION).

Por exemplo, a chamada a seguir envia uma mensagem msiMessageTypeError com o ícone vbExclamation e os botões vbYesNo.

Session.Message &H01000034, record

Se uma ação personalizada chamar o método Message, a ação personalizada poderá lidar com um cancelamento pelo usuário e deverá retornar msiDoActionStatusUserExit.

Requisitos

Requisito Valor
Versão
Windows Installer 5.0 no Windows Server 2012, no Windows 8, no Windows Server 2008 R2 ou no Windows 7. Windows Installer 4.0 ou Windows Installer 4.5 no Windows Server 2008 ou no Windows Vista. Windows Installer no Windows Server 2003 ou no Windows XP
DLL
Msi.dll
IID
O IID_ISession é definido como 000C109E-0000-0000-C000-000000000046