// Method to store the intervals (in percent complete) from the current invocation of // the splash screen to the registry. private void StoreIncrements() { string sPercent = ""; double dblElapsedMilliseconds = ElapsedMilliSeconds(); for (int i = 0; i < m_alActualTimes.Count; i++) { sPercent += ((double)m_alActualTimes[i] / dblElapsedMilliseconds).ToString("0.####", System.Globalization.NumberFormatInfo.InvariantInfo) + " "; } RegistryAccess.SetStringRegistryValue(REGVALUE_PB_PERCENTS, sPercent); m_dblPBIncrementPerTimerInterval = 1.0 / (double)m_iActualTicks; RegistryAccess.SetStringRegistryValue(REGVALUE_PB_MILISECOND_INCREMENT, m_dblPBIncrementPerTimerInterval.ToString("#.000000", System.Globalization.NumberFormatInfo.InvariantInfo)); }
// Function to read the checkpoint intervals from the previous invocation of the // splashscreen from the registry. private void ReadIncrements() { string sPBIncrementPerTimerInterval = RegistryAccess.GetStringRegistryValue(REGVALUE_PB_MILISECOND_INCREMENT, "0.0015"); double dblResult; if (Double.TryParse(sPBIncrementPerTimerInterval, System.Globalization.NumberStyles.Float, System.Globalization.NumberFormatInfo.InvariantInfo, out dblResult) == true) { m_dblPBIncrementPerTimerInterval = dblResult; } else { m_dblPBIncrementPerTimerInterval = .0015; } string sPBPreviousPctComplete = RegistryAccess.GetStringRegistryValue(REGVALUE_PB_PERCENTS, ""); if (sPBPreviousPctComplete != "") { string [] aTimes = sPBPreviousPctComplete.Split(null); m_alPreviousCompletionFraction = new ArrayList(); for (int i = 0; i < aTimes.Length; i++) { double dblVal; if (Double.TryParse(aTimes[i], System.Globalization.NumberStyles.Float, System.Globalization.NumberFormatInfo.InvariantInfo, out dblVal)) { m_alPreviousCompletionFraction.Add(dblVal); } else { m_alPreviousCompletionFraction.Add(1.0); } } } else { m_bFirstLaunch = true; lblTimeRemaining.Text = ""; } }