Skapa en ProgressBar-kontroll
Windows Installer innehåller funktioner för att visa en förloppsindikator i en dialogruta för åtgärdsvisning. Kontrollen ProgressBar representerar grafiskt installationen av enskilda komponenter och rapporterar antingen den totala tiden som förflutit i förhållande till återstående tid eller den ungefärliga totala tid som återstår tills installationen är klar.
För att fastställa den totala tid som förväntas för installationen spårar installationsprogrammet de totala förloppsmarkeringar som förväntas av varje åtgärd under genereringen av körningsskriptet. När skriptgenereringen är klar lagras det totala antalet förloppsmarkeringar och installationen börjar.
Förloppsmeddelanden som beskriver det förflutna antalet förloppsmarkeringar skickas till den aktiva meddelandehanteraren när varje åtgärd i skriptet körs. I varje förloppsmeddelande sänder installationsprogrammet en SetProgress ControlEvent- till den aktiva dialogrutan. Användargränssnittssekvensen bör redigeras för att skapa dialogrutan för åtgärdsvisning under skriptkörningen för att ta emot SetProgress ControlEvent-meddelanden från installationsprogrammet.
När dialogrutan för åtgärdsvisning tar emot en SetProgress ControlEvent, kontrollerar den tabellen EventMapping för alla kontroller som prenumererar på ControlEvent. ProgressBar-kontrollen i dialogrutan för åtgärdsvisning abonneras på med attributet för förloppskontroll som anges i kolumnen Attribut. Attributet Förloppskontroll anger att ProgressBar-kontrollen ska skickas "ticksSoFar" och "totalTicks"-värden tillsammans med SetProgress ControlEvent. Förloppsindikatorkontrollen använder den här informationen för att flytta det grafiska fältet från vänster till höger för en installation och från höger till vänster för en återställning åtgärd.
Dessutom sänder installationsprogrammet en TimeRemaining ControlEvent vid varje förloppsmeddelande. Den totala återstående tiden för installationen bestäms genom att först beräkna exekveringshastigheten, vilket är det totala antalet tick som har gått dividerat med tiden som har gått sedan installationen startade. Antalet tick som återstår delas med körhastigheten och ger den ungefärliga återstående tiden.
När dialogrutan för åtgärdsvisning tar emot TimeRemaining ControlEvent letar den återigen i tabellen EventMapping efter eventuella kontroller som prenumererar. Om du vill visa den återstående tiden måste en Text-kontroll prenumerera på TimeRemaining ControlEvent med kontrollattributet TimeRemaining som anges i kolumnen Attribut.
Den prenumererade textkontrollen frågar tabellen UIText efter en parameteriserad mallsträng med namnet "TimeRemaining". Den här strängen har två parametrar, [1] i minuter och [2] i sekunder. Textkontrollen konverterar varje värde till minuter och sekunder, utvärderar mallsträngen TimeRemaining och uppdaterar textkontrollen med den nya informationen.
Om användargränssnittets visningsnivå är inställd på grundläggande eller lägre visar installationsprogrammet en standarddialogruta som innehåller ett förloppsfält och textfältet TimeRemaining. Mer information finns i användargränssnittsnivåer.