Menulis Kontrol Bilah Kemajuan
Penginstal Windows berisi fungsionalitas untuk menampilkan indikator kemajuan dalam dialog tampilan tindakan. Kontrol ProgressBar secara grafis mewakili penginstalan komponen individu dan melaporkan total waktu yang berlalu relatif terhadap waktu yang tersisa atau perkiraan total waktu yang tersisa sampai penginstalan selesai.
Untuk menentukan total waktu yang diperkirakan untuk penginstalan, alat penginstal melacak total tanda kemajuan yang diprediksi oleh setiap tindakan dalam pembuatan skrip eksekusi. Ketika pembuatan skrip selesai, jumlah tanda centang kemajuan disimpan dan penginstalan dimulai.
Pesan kemajuan yang merinci jumlah tick kemajuan yang telah berlalu dikirim kepada penangan pesan aktif saat setiap tindakan dalam skrip dijalankan. Pada setiap pesan kemajuan, alat penginstal menyiarkan SetProgress ControlEvent ke kotak dialog yang saat ini aktif. Urutan UI harus ditulis untuk membuat kotak dialog tampilan tindakan selama eksekusi skrip untuk menerima pesan SetProgress ControlEvent dari alat penginstal.
Saat kotak dialog tampilan tindakan menerima peristiwa kontrol SetProgress, kotak dialog memeriksa tabel EventMapping untuk melihat apakah ada kontrol yang berlangganan peristiwa tersebut. Kontrol ProgressBar pada kotak dialog tampilan tindakan terhubung dengan atribut Kontrol Kemajuan yang ditentukan di kolom Atribut. Atribut Kontrol Progres menentukan bahwa kontrol ProgressBar akan menerima nilai "ticksSoFar" dan "totalTicks" bersamaan dengan SetProgress ControlEvent. Kontrol bilah kemajuan menggunakan informasi ini untuk memajukan bilah grafis dari kiri ke kanan untuk penginstalan dan dari kanan ke kiri untuk operasi pengembalian .
Selain itu, alat penginstal menyiarkan TimeRemaining ControlEvent pada setiap pesan kemajuan. Total waktu yang tersisa untuk penginstalan ditentukan dengan terlebih dahulu menghitung tingkat eksekusi, yaitu jumlah total tick yang berlalu dibagi dengan total waktu sejak penginstalan dimulai. Total tanda yang tersisa dibagi dengan tingkat eksekusi menyediakan perkiraan waktu yang tersisa.
Saat kotak dialog tampilan tindakan menerima TimeRemaining ControlEvent, kotak dialog tersebut kembali terlihat dalam tabel EventMapping untuk kontrol apa pun yang berlangganan. Untuk menampilkan sisa waktu, kontrol Teks harus berlangganan TimeRemaining ControlEvent dengan atribut kontrol TimeRemaining ditentukan di kolom Atribut.
Kontrol Teks berlangganan meminta tabel UIText untuk string templat berparameter bernama "TimeRemaining". String ini memiliki dua parameter, [1] selama menit, dan [2] selama detik. Kontrol Teks mengonversi setiap nilai menjadi menit dan detik, mengevaluasi string templat TimeRemaining, dan memperbarui kontrol teks dengan informasi baru.
Jika tingkat tampilan UI diatur ke dasar atau lebih rendah, alat penginstal menampilkan kotak dialog default yang berisi bilah kemajuan dan bidang teks TimeRemaining. Untuk informasi selengkapnya, lihat Tingkat Antarmuka Pengguna.