Partilhar via


Criar um Controle ProgressBar

O Windows Installer contém funcionalidade para exibir um indicador de progresso em uma caixa de diálogo de exibição de ação. O Controle ProgressBar representa graficamente a instalação de componentes individuais e relata o tempo total decorrido em relação ao tempo restante ou o tempo total aproximado restante até que a instalação seja concluída.

Para determinar o tempo total previsto para a instalação, o instalador acompanha os tiques de progresso totais previstos por cada ação durante a geração do script de execução. Ao ser concluída a geração de script, o total do tique de progresso é armazenado e a instalação começa.

As mensagens de progresso que detalham o número decorrido de tiques de progresso são enviadas para o manipulador de mensagens ativo à medida que cada ação no script é executada. Em cada mensagem de progresso, o instalador transmite um SetProgress de ControlEvent para a caixa de diálogo ativa no momento. A sequência de interface do usuário deve ser criada para criar a caixa de diálogo de exibição de ação durante a execução do script para receber as mensagens SetProgress de ControlEvent do instalador.

Quando a caixa de diálogo de exibição de ação recebe um SetProgress de ControlEvent, ela verifica a Tabela EventMapping para quaisquer controles que assinam o ControlEvent. O controle ProgressBar na caixa de diálogo de exibição de ação é inscrito com o atributo de Controle de Progresso especificado na coluna Atributos. O atributo de Controle de Progresso especifica que o controle ProgressBar será passado pelos valores "ticksSoFar" e "totalTicks" juntamente com o SetProgress de ControlEvent. O controle da barra de progresso usa essas informações para avançar a barra gráfica da esquerda para a direita para uma instalação e da direita para a esquerda para uma operação de reversão.

Além disso, o instalador transmite um TimeRemaining de ControlEvent em cada mensagem de progresso. O tempo total restante para a instalação é determinado pela primeira vez calculando a taxa de execução, que é o número total de tiques decorridos dividido pelo tempo total desde o início da instalação. O total de tiques que permanecem divididos pela taxa de execução dá o tempo aproximado restante.

Quando a caixa de diálogo de exibição de ação recebe o TimeRemaining de ControlEvent, ela procura novamente na tabela EventMapping todos os controles inscritos. Para exibir o tempo restante, um Controle de Texto deve ser inscrito no TimeRemaining de ControlEvent com o atributo de controle TimeRemaining especificado na coluna Atributos.

O Controle de Texto assinado consulta a Tabela UIText para uma cadeia de caracteres de modelo parametrizada chamada "TimeRemaining". Essa cadeia de caracteres tem dois parâmetros, [1] por minutos e [2] por segundos. O Controle de Texto converte cada valor em minutos e segundos, avalia a cadeia de caracteres de modelo TimeRemaining e atualiza o controle de texto com as novas informações.

Caso o nível de exibição da interface do usuário esteja definido como básico ou inferior, o instalador exibirá uma caixa de diálogo padrão contendo uma barra de progresso e um campo de texto TimeRemaining. Para obter mais informações, consulte os Níveis da interface do usuário.