Menulis Kontrol Bilah Kemajuan

Pemasang Windows memuat fungsionalitas untuk menampilkan indikator kemajuan dalam dialog tampilan tindakan. Kontrol ProgressBar secara grafis mewakili penginstalan komponen individual 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 diantisipasi untuk penginstalan, alat penginstal melacak total tick kemajuan yang diantisipasi oleh setiap tindakan selama pembuatan skrip eksekusi. Ketika pembuatan skrip selesai, total tick kemajuan disimpan dan penginstalan dimulai.

Pesan kemajuan yang merinci jumlah tick kemajuan yang berlalu dikirim ke penangan pesan aktif karena 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 SetProgress ControlEvent, kotak dialog akan memeriksa tabel EventMapping untuk kontrol apa pun yang berlangganan ControlEvent. Kotak dialog Kontrol Bilah Kemajuan pada tampilan tindakan berlangganan dengan atribut kontrol Kemajuan yang ditentukan di kolom Atribut. Atribut Kontrol Kemajuan menentukan bahwa kontrol ProgressBar akan diteruskan nilai "ticksSoFar" dan "totalTicks" bersama 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 putar kembali .

Selain itu, alat penginstal menyiarkan TimeRemaining ControlEvent pada setiap pesan kemajuan. Total waktu yang tersisa untuk penginstalan ditentukan dengan terlebih dahulu menghitung tingkat eksekusi, yang merupakan jumlah total kutu yang berlalu dibagi dengan total waktu sejak penginstalan dimulai. Total tick yang tersisa dibagi dengan tingkat eksekusi memberikan perkiraan waktu yang tersisa.

Saat kotak dialog tampilan tindakan menerima TimeRemaining ControlEvent, kotak dialog tersebut kembali melihat tabel EventMapping untuk kontrol apa pun yang berlangganan. Untuk menampilkan sisa waktu, kontrol Teks harus berlangganan TimeRemaining ControlEvent dengan atribut kontrol TimeRemaining yang ditentukan di kolom Atribut.

Kontrol Teks langganan meminta tabel UIText untuk string templat berparameter bernama "TimeRemaining". String ini memiliki dua parameter, [1] selama menit, dan [2] selama beberapa 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.