Creación de un control ProgressBar

Windows Instalador contiene funcionalidad para mostrar un indicador de progreso en un cuadro de diálogo de visualización de acción. El control ProgressBar representa gráficamente la instalación de componentes individuales e informa del tiempo total transcurrido en relación con el tiempo restante o el tiempo total aproximado restante hasta que se complete la instalación.

Para determinar el tiempo total previsto para la instalación, el instalador realiza un seguimiento de los tics de progreso totales previstos por cada acción durante la generación del script de ejecución. Cuando se completa la generación de scripts, el total de tics de progreso se almacena y comienza la instalación.

Los mensajes de progreso que detallan el número transcurrido de tics de progreso se envían al controlador de mensajes activo a medida que se ejecuta cada acción del script. En cada mensaje de progreso, el instalador difunde un SetProgress ControlEvent al cuadro de diálogo activo actualmente. La secuencia de interfaz de usuario debe crearse para crear el cuadro de diálogo de presentación de acciones durante la ejecución del script para recibir los mensajes SetProgress ControlEvent del instalador.

Cuando el cuadro de diálogo de presentación de la acción recibe un ControlEvent SetProgress, comprueba la tabla EventMapping para los controles que se suscriben al ControlEvent. El control ProgressBar del cuadro de diálogo de presentación de la acción se suscribe con el atributo de control Progress especificado en la columna Atributos. El atributo Control de progreso especifica que el control ProgressBar pasará los valores "ticksSoFar" y "totalTicks" junto con el control SetProgress ControlEvent. El control de barra de progreso usa esta información para avanzar la barra gráfica de izquierda a derecha para una instalación y de derecha a izquierda para una operación de reversión .

Además, el instalador difunde un TimeRemaining ControlEvent en cada mensaje de progreso. El tiempo total restante para la instalación se determina calculando primero la tasa de ejecución, que es el número total de tics transcurridos dividido por el tiempo total desde que se inició la instalación. El total de tics restantes divididos por la tasa de ejecución proporciona el tiempo aproximado restante.

Cuando el cuadro de diálogo de presentación de la acción recibe timeRemaining ControlEvent, vuelve a buscar en la tabla EventMapping los controles suscritos. Para mostrar el tiempo restante, se debe suscribir un control Text al objeto TimeRemaining ControlEvent con el atributo de control TimeRemaining especificado en la columna Atributos.

El control Text suscrito consulta la tabla UIText para obtener una cadena de plantilla con parámetros denominada "TimeRemaining". Esta cadena tiene dos parámetros, [1] durante minutos y [2] durante segundos. El control Text convierte cada valor en minutos y segundos, evalúa la cadena de plantilla TimeRemaining y actualiza el control de texto con la nueva información.

Si el nivel de presentación de la interfaz de usuario está establecido en básico o inferior, el instalador muestra un cuadro de diálogo predeterminado que contiene una barra de progreso y un campo de texto TimeRemaining. Para obtener más información, consulte Niveles de interfaz de usuario.