Creazione di un controllo ProgressBar

Windows Installer contiene funzionalità per visualizzare un indicatore di stato in una finestra di dialogo di visualizzazione azioni. Il controllo ProgressBar rappresenta graficamente l'installazione di singoli componenti e segnala il tempo totale trascorso rispetto al tempo rimanente o il tempo totale approssimativo rimanente fino al completamento dell'installazione.

Per determinare il tempo totale previsto per l'installazione, il programma di installazione tiene traccia dei segni di avanzamento totali previsti da ogni azione durante la generazione dello script di esecuzione. Al termine della generazione di script, il totale del segno di avanzamento viene archiviato e l'installazione inizia.

I messaggi di stato che descrivono in dettaglio il numero trascorso di tick di stato vengono inviati al gestore messaggi attivo quando viene eseguita ogni azione nello script. In ogni messaggio di stato il programma di installazione trasmette un controllo SetProgressEvent alla finestra di dialogo attualmente attiva. La sequenza dell'interfaccia utente deve essere creata per creare la finestra di dialogo di visualizzazione dell'azione durante l'esecuzione dello script per ricevere i messaggi SetProgress ControlEvent dal programma di installazione.

Quando la finestra di dialogo di visualizzazione dell'azione riceve un controllo SetProgress ControlEvent, controlla la tabella EventMapping per tutti i controlli che sottoscrivono a ControlEvent. Il controllo ProgressBar nella finestra di dialogo visualizzazione azione viene sottoscritto con l'attributo Di controllo Stato specificato nella colonna Attributi. L'attributo Progress Control specifica che il controllo ProgressBar verrà passato "ticksSoFar" e "totalTicks" insieme ai valori SetProgress ControlEvent. Il controllo barra di stato usa queste informazioni per avanzare la barra grafica da sinistra a destra per un'installazione e da destra a sinistra per un'operazione di rollback .

Inoltre, il programma di installazione trasmette un controllo TimeRemainingEvent in ogni messaggio di stato. Il tempo totale rimanente per l'installazione viene determinato per la prima volta calcolando la frequenza di esecuzione, ovvero il numero totale di tick trascorsi per il tempo totale dall'avvio dell'installazione. I tick totali rimanenti suddivisi in base alla frequenza di esecuzione offrono il tempo approssimativo rimanente.

Quando la finestra di dialogo di visualizzazione dell'azione riceve il controllo TimeRemainingEvent, viene visualizzata nuovamente nella tabella EventMapping per tutti i controlli sottoscritti. Per visualizzare il tempo rimanente, è necessario sottoscrivere un controllo Text alla colonna TimeRemaining ControlEvent con l'attributo di controllo TimeRemaining specificato nella colonna Attributi.

Il controllo Testo sottoscritto esegue una query sulla tabella UIText per una stringa di modello con parametri denominata "TimeRemaining". Questa stringa include due parametri, [1] per minuti e [2] per secondi. Il controllo Testo converte ogni valore in minuti e secondi, valuta la stringa del modello TimeRemaining e aggiorna il controllo di testo con le nuove informazioni.

Se il livello di visualizzazione dell'interfaccia utente è impostato su base o inferiore, il programma di installazione visualizza una finestra di dialogo predefinita contenente una barra di stato e un campo di testo TimeRemaining. Per altre informazioni, vedere Livelli di interfaccia utente.