Condividi tramite


Creazione di un controllo ProgressBar

Windows Installer contiene funzionalità per visualizzare un indicatore di stato in una finestra di dialogo di visualizzazione delle azioni. Il controllo ProgressBar graficamente rappresenta 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 dello script, il totale dei progressi viene salvato e inizia l'installazione.

I messaggi di stato che descrivono in dettaglio il numero di tick di stato trascorsi vengono inviati al gestore di messaggi attivo durante l'esecuzione di ogni azione nello script. In ogni messaggio di stato il programma di installazione trasmette un SetProgress ControlEvent 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 ControlEvent SetProgress, controlla la tabella EventMapping per tutti i controlli che sottoscrivono l'evento ControlEvent. Il controllo ProgressBar nella finestra di dialogo di visualizzazione dell'azione è associato all'attributo di controllo Progress specificato nella sezione Attributi. L'attributo Progress Control specifica che al controllo ProgressBar verranno passati i valori "ticksSoFar" e "totalTicks" insieme all'evento di controllo "SetProgress". Il controllo della barra di avanzamento usa queste informazioni per far 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 TimeRemaining ControlEvent in ogni messaggio di avanzamento. Il tempo totale rimanente per l'installazione è determinato prima calcolando la frequenza di esecuzione, ovvero il numero totale di tick trascorsi diviso per il tempo totale dall'inizio dell'installazione. Il tempo approssimativo rimanente si ottiene dividendo i tick totali rimanenti per la velocità di esecuzione.

Quando la finestra di dialogo di visualizzazione dell'azione riceve l'evento TimeRemaining ControlEvent, cerca di nuovo nella tabella EventMapping tutti i controlli sottoscritti. Per visualizzare il tempo rimanente, è necessario sottoscrivere un controllo testo al TimeRemaining ControlEvent con l'attributo del controllo TimeRemaining specificato nella colonna Attributi.

Il controllo Text sottoscritto esegue una query sulla tabella UIText per una stringa di modello con parametri denominata "TimeRemaining". Questa stringa ha due parametri, [1] per minuti e [2] per secondi. Il controllo Text 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 un indicatore di stato e un campo di testo TimeRemaining. Per ulteriori informazioni, vedere i livelli dell'interfaccia utente .