document.write('\
<div class="poshcode code posh">\
<style type="text/css">\
');
document.write("/**\
 * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann\
 * (http://qbnz.com/highlighter/ and http://geshi.org/)\
 */\
.posh .de1, .posh .de2 {font: normal normal 1em/1.2em Consolas, 'Bitstream Vera Sans Mono', 'Courier New', monospace; margin:0; padding:0; background:none; vertical-align:top;}\
.posh  {font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', monospace;}\
.posh .imp {font-weight: bold; color: red;}\
.posh li, .posh .li1 {background: #ffffff;}\
.posh .ln {width:1px;text-align:right;margin:0;padding:0 2px;vertical-align:top;}\
.posh .li2 {background: #eeeeee;}\
.posh .kw1 {color: #666699; font-weight: bold;}\
.posh .kw2 {color: #333399; font-weight: bold; font-style: italic;}\
.posh .kw3 {color: #003366; font-weight: bold;}\
.posh .kw4 {color: #660033;}\
.posh .co1 {color: #666666; font-style: italic;}\
.posh .coMULTI {color: #666666; font-style: italic;}\
.posh .es0 {color: #000099; font-weight: bold;}\
.posh .br0 {color: #333;}\
.posh .sy0 {color: #66cc66;}\
.posh .st0 {color: #009900;}\
.posh .nu0 {color: #cc66cc;}\
.posh .me1 {color: #003366;}\
.posh .me2 {color: #003366;}\
.posh .re0 {color: #0066cc; font-style: italic;}\
.posh .re1 {font-style: normal;}\
.posh .re2 {color: #000066;}\
.posh .re3 {color: #660033; font-weight: bold;}\
.posh .re4 {color: #003366; font-weight: bold;}\
.posh span.xtra { display:block; }\
");
document.write(".posh ol {float:left; margin: 0px !important; padding: 0px; min-width:100% !important; list-style-position: inside;}\
.posh li.li2, .posh li.li1 {list-style-type:decimal-leading-zero; white-space:nowrap; padding:0 1em 0 0.5em;}\
.posh li {color: #ccc;}\
.posh li div {color: #000; display: inline;}\
.syntax {background:none repeat scroll 0 0 #eee; border:0.5em solid #ccc;}\
.syntax .posh {overflow: auto;}\
.syntax .poshcredit {\
background-color:#eaeaea; color:#666;\
padding:0.5em 1em; clear:both;\
font-size:85%;\
}");
document.write("\n</style>");
document.write('<div class="syntax"><div class="posh" style="font-family: Consolas, \'Bitstream Vera Sans Mono\', \'Courier New\', monospace;"><ol><li class="li1"><div class="de1"><span class="kw1">function</span> <span class="re0">Start-<span class="re1">BootsTimer</span></span> <span class="br0">&#123;</span></div></li>\
<li class="li2"><div class="de2"><span class="co1">#.Syntax</span></div></li>\
<li class="li1"><div class="de1"><span class="co1"># &nbsp;Creates a stay-on-top countdown timer</span></div></li>\
<li class="li2"><div class="de2"><span class="co1">#.Description</span></div></li>\
<li class="li1"><div class="de1"><span class="co1"># &nbsp;A WPF borderless count-down timer, with audio/voice alarms and visual countdown + colored progress indication</span></div></li>\
<li class="li2"><div class="de2"><span class="co1">#.Parameter EndMessage</span></div></li>\
<li class="li1"><div class="de1"><span class="co1"># &nbsp;The message to be spoken by a voice when the time is up...</span></div></li>\
<li class="li2"><div class="de2"><span class="co1">#.Parameter StartMessage</span></div></li>\
<li class="li1"><div class="de1"><span class="co1"># &nbsp;A message to be spoken at start up (just to let you know, audibly, what\'s up).</span></div></li>\
<li class="li2"><div class="de2">&nbsp;</div></li>\
<li class="li1"><div class="de1"><span class="co1">#.Parameter Minutes</span></div></li>\
<li class="li2"><div class="de2"><span class="co1"># &nbsp;Some minutes to add to the timer</span></div></li>\
<li class="li1"><div class="de1"><span class="co1">#.Parameter Seconds</span></div></li>\
<li class="li2"><div class="de2"><span class="co1"># &nbsp;Some seconds to add to the timer</span></div></li>\
<li class="li1"><div class="de1"><span class="co1">#.Parameter Hours</span></div></li>\
<li class="li2"><div class="de2"><span class="co1"># &nbsp;Some hours to add to the timer</span></div></li>\
<li class="li1"><div class="de1">&nbsp;</div></li>\
<li class="li2"><div class="de2"><span class="co1">#.Parameter SoundFile</span></div></li>\
<li class="li1"><div class="de1"><span class="co1"># &nbsp;A .wav file to play as the alarm</span></div></li>\
<li class="li2"><div class="de2"><span class="co1">#.Parameter FontSize</span></div></li>\
<li class="li1"><div class="de1"><span class="co1"># &nbsp;The size of the timer text</span></div></li>\
<li class="li2"><div class="de2"><span class="co1">#.Parameter SingleAlarm</span></div></li>\
<li class="li1"><div class="de1"><span class="co1"># &nbsp;Only sound the alarm once</span></div></li>\
<li class="li2"><div class="de2">&nbsp;</div></li>\
<li class="li1"><div class="de1"><span class="co1">#.Example</span></div></li>\
<li class="li2"><div class="de2"><span class="co1"># &nbsp;Start-BootsTimer &nbsp;180 &quot;The three minute egg is ready!&quot;</span></div></li>\
<li class="li1"><div class="de1"><span class="co1">#</span></div></li>\
<li class="li2"><div class="de2"><span class="co1"># &nbsp;Starts a three minute timer with the specified voice alert at the end</span></div></li>\
<li class="li1"><div class="de1"><span class="co1">#</span></div></li>\
<li class="li2"><div class="de2"><span class="co1">#.Example</span></div></li>\
<li class="li1"><div class="de1"><span class="co1"># &nbsp;Start-BootsTimer &nbsp;-End &quot;The three minute egg is ready!&quot; -Minute 3</span></div></li>\
<li class="li2"><div class="de2"><span class="co1">#</span></div></li>\
<li class="li1"><div class="de1"><span class="co1"># &nbsp;Starts a three minute timer with the specified voice alert at the end</span></div></li>\
<li class="li2"><div class="de2"><span class="co1">#</span></div></li>\
<li class="li1"><div class="de1"><span class="co1">#.Example</span></div></li>\
<li class="li2"><div class="de2"><span class="co1"># &nbsp;Start-BootsTimer &nbsp;&quot;Your turn is over!&quot; -Minutes 10 -Single -FontSize 18</span></div></li>\
<li class="li1"><div class="de1"><span class="co1">#</span></div></li>\
<li class="li2"><div class="de2"><span class="co1"># &nbsp;Starts a 10 minute timer that only plays the alert once at the end, and has a small font, which would fit over the task bar or a window title bar...</span></div></li>\
<li class="li1"><div class="de1"><span class="br0">&#91;</span>CmdletBinding<span class="br0">&#40;</span>DefaultParameterSetName<span class="sy0">=</span><span class="st0">&quot;Times&quot;</span><span class="br0">&#41;</span><span class="br0">&#93;</span></div></li>\
<li class="li2"><div class="de2"><span class="kw1">PARAM</span><span class="br0">&#40;</span> </div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="br0">&#91;</span>Parameter<span class="br0">&#40;</span>Position<span class="sy0">=</span><span class="nu0">2</span>,ParameterSetName<span class="sy0">=</span><span class="st0">&quot;Times&quot;</span>,Mandatory<span class="sy0">=</span><span class="re3">$false</span><span class="br0">&#41;</span><span class="br0">&#93;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="br0">&#91;</span>Parameter<span class="br0">&#40;</span>Position<span class="sy0">=</span><span class="nu0">1</span>,ParameterSetName<span class="sy0">=</span><span class="st0">&quot;Reasons&quot;</span>, Mandatory<span class="sy0">=</span><span class="re3">$true</span><span class="br0">&#41;</span><span class="br0">&#93;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="re4"><span class="br0">&#91;</span><span class="kw3">string</span><span class="br0">&#93;</span></span><span class="re3">$EndMessage</span></div></li>\
<li class="li2"><div class="de2">, &nbsp;</div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="br0">&#91;</span>Parameter<span class="br0">&#40;</span>Position<span class="sy0">=</span><span class="nu0">2</span>,ParameterSetName<span class="sy0">=</span><span class="st0">&quot;Reasons&quot;</span>, Mandatory<span class="sy0">=</span><span class="re3">$false</span><span class="br0">&#41;</span><span class="br0">&#93;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="re4"><span class="br0">&#91;</span><span class="kw3">string</span><span class="br0">&#93;</span></span><span class="re3">$StartMessage</span></div></li>\
<li class="li1"><div class="de1">, &nbsp;</div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="br0">&#91;</span>Parameter<span class="br0">&#40;</span>Position<span class="sy0">=</span><span class="nu0">3</span>,ParameterSetName<span class="sy0">=</span><span class="st0">&quot;Reasons&quot;</span>, Mandatory<span class="sy0">=</span><span class="re3">$false</span><span class="br0">&#41;</span><span class="br0">&#93;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="re4"><span class="br0">&#91;</span><span class="kw3">int</span><span class="br0">&#93;</span></span><span class="re3">$minutes</span> &nbsp; <span class="sy0">=</span> <span class="nu0">0</span></div></li>\
<li class="li2"><div class="de2">,</div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="br0">&#91;</span>Parameter<span class="br0">&#40;</span>Position<span class="sy0">=</span><span class="nu0">4</span>,ParameterSetName<span class="sy0">=</span><span class="st0">&quot;Reasons&quot;</span>, Mandatory<span class="sy0">=</span><span class="re3">$false</span><span class="br0">&#41;</span><span class="br0">&#93;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="br0">&#91;</span>Parameter<span class="br0">&#40;</span>Position<span class="sy0">=</span><span class="nu0">1</span>,ParameterSetName<span class="sy0">=</span><span class="st0">&quot;Times&quot;</span>, Mandatory<span class="sy0">=</span><span class="re3">$true</span><span class="br0">&#41;</span><span class="br0">&#93;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="re4"><span class="br0">&#91;</span><span class="kw3">int</span><span class="br0">&#93;</span></span><span class="re3">$seconds</span> &nbsp; <span class="sy0">=</span> <span class="nu0">0</span></div></li>\
<li class="li2"><div class="de2">,</div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="br0">&#91;</span>Parameter<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#93;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="re4"><span class="br0">&#91;</span><span class="kw3">int</span><span class="br0">&#93;</span></span><span class="re3">$hours</span> &nbsp; &nbsp; <span class="sy0">=</span> <span class="nu0">0</span></div></li>\
<li class="li1"><div class="de1">,</div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="br0">&#91;</span>Parameter<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#93;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="re3">$SoundFile</span> <span class="sy0">=</span> <span class="st0">&quot;$env:SystemRoot\\Media\\notify.wav&quot;</span></div></li>\
<li class="li2"><div class="de2">,</div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="br0">&#91;</span>Parameter<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#93;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="re3">$FontSize</span> <span class="sy0">=</span> <span class="nu0">125</span></div></li>\
<li class="li1"><div class="de1">, </div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="br0">&#91;</span>Parameter<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#93;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="re4"><span class="br0">&#91;</span><span class="kw1">Switch</span><span class="br0">&#93;</span></span><span class="re3">$SingleAlarm</span></div></li>\
<li class="li2"><div class="de2"><span class="br0">&#41;</span></div></li>\
<li class="li1"><div class="de1">&nbsp;</div></li>\
<li class="li2"><div class="de2"><span class="co1"># Default to 10 seconds ... without adding 5 seconds when people specify minutes</span></div></li>\
<li class="li1"><div class="de1"><span class="kw1">if</span><span class="br0">&#40;</span><span class="br0">&#40;</span><span class="re3">$seconds</span> <span class="sy0">+</span> <span class="re3">$Minutes</span> <span class="sy0">+</span> <span class="re3">$hours</span><span class="br0">&#41;</span> <span class="re2">-eq</span> <span class="nu0">0</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="re3">$seconds</span> <span class="sy0">=</span> <span class="nu0">10</span> <span class="br0">&#125;</span></div></li>\
<li class="li2"><div class="de2">&nbsp;</div></li>\
<li class="li1"><div class="de1"><span class="re3">$start</span> <span class="sy0">=</span> <span class="re4"><span class="br0">&#91;</span>DateTime<span class="br0">&#93;</span></span>::<span class="me2">Now</span></div></li>\
<li class="li2"><div class="de2"><span class="co1">## We have to store all this stuff, because the powerboots window lasts longer than the script</span></div></li>\
<li class="li1"><div class="de1"><span class="re3">$TimerStuff</span> <span class="sy0">=</span> @<span class="br0">&#123;</span><span class="br0">&#125;</span></div></li>\
<li class="li2"><div class="de2"><span class="re3">$TimerStuff</span><span class="br0">&#91;</span><span class="st0">&quot;seconds&quot;</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="re4"><span class="br0">&#91;</span>Math<span class="br0">&#93;</span></span>::<span class="me2">Abs</span><span class="br0">&#40;</span><span class="re3">$seconds</span><span class="br0">&#41;</span> <span class="sy0">+</span> <span class="re4"><span class="br0">&#91;</span>Math<span class="br0">&#93;</span></span>::<span class="me2">Abs</span><span class="br0">&#40;</span><span class="re4"><span class="br0">&#91;</span><span class="kw3">int</span><span class="br0">&#93;</span></span><span class="br0">&#40;</span><span class="re3">$minutes</span><span class="sy0">*</span><span class="nu0">60</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="sy0">+</span> <span class="re4"><span class="br0">&#91;</span>Math<span class="br0">&#93;</span></span>::<span class="me2">Abs</span><span class="br0">&#40;</span><span class="re4"><span class="br0">&#91;</span><span class="kw3">int</span><span class="br0">&#93;</span></span><span class="br0">&#40;</span><span class="re3">$hours</span><span class="sy0">*</span><span class="nu0">60</span><span class="sy0">*</span><span class="nu0">60</span><span class="br0">&#41;</span><span class="br0">&#41;</span></div></li>\
<li class="li1"><div class="de1"><span class="re3">$TimerStuff</span><span class="br0">&#91;</span><span class="st0">&quot;TimerEnd&quot;</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="re3">$start</span>.<span class="me1">AddSeconds</span><span class="br0">&#40;</span> <span class="re3">$TimerStuff</span><span class="br0">&#91;</span><span class="st0">&quot;seconds&quot;</span><span class="br0">&#93;</span> <span class="br0">&#41;</span></div></li>\
<li class="li2"><div class="de2"><span class="re3">$TimerStuff</span><span class="br0">&#91;</span><span class="st0">&quot;SingleAlarm&quot;</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="re3">$SingleAlarm</span></div></li>\
<li class="li1"><div class="de1">&nbsp;</div></li>\
<li class="li2"><div class="de2"><span class="co1">## Take care of as much overhead as we can before we need it...</span></div></li>\
<li class="li1"><div class="de1"><span class="kw1">if</span><span class="br0">&#40;</span><span class="re0">Test-<span class="re1">Path</span></span> <span class="re3">$soundFile</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="re3">$TimerStuff</span><span class="br0">&#91;</span><span class="st0">&quot;Sound&quot;</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="re0">new-<span class="re1">Object</span></span> <span class="kw3">System</span>.<span class="me1">Media</span>.<span class="me1">SoundPlayer</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="re3">$TimerStuff</span><span class="br0">&#91;</span><span class="st0">&quot;Sound&quot;</span><span class="br0">&#93;</span>.<span class="me1">SoundLocation</span><span class="sy0">=</span><span class="re3">$SoundFile</span></div></li>\
<li class="li2"><div class="de2"><span class="br0">&#125;</span></div></li>\
<li class="li1"><div class="de1"><span class="kw1">if</span><span class="br0">&#40;</span><span class="re3">$EndMessage</span> <span class="re2">-or</span> <span class="re3">$StartMessage</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="re3">$TimerStuff</span><span class="br0">&#91;</span><span class="st0">&quot;Voice&quot;</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="re0">new-<span class="re1">object</span></span> <span class="re2">-com</span> SAPI.<span class="me1">SpVoice</span></div></li>\
<li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li>\
<li class="li2"><div class="de2"><span class="co1">## Create and store a scriptblock to figure out the remaining time and format it</span></div></li>\
<li class="li1"><div class="de1"><span class="re3">$TimerStuff</span><span class="br0">&#91;</span><span class="st0">&quot;NowFunction&quot;</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="br0">&#123;</span> </div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="re3">$diff</span> <span class="sy0">=</span> <span class="re3">$BootsTimer</span>.<span class="me1">Tag</span><span class="br0">&#91;</span><span class="st0">&quot;TimerEnd&quot;</span><span class="br0">&#93;</span> <span class="sy0">-</span> <span class="re4"><span class="br0">&#91;</span>DateTime<span class="br0">&#93;</span></span>::<span class="me2">Now</span>;</div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="re3">$diff</span>.<span class="me1">TotalSeconds</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="kw1">if</span><span class="br0">&#40;</span><span class="re3">$diff</span>.<span class="me1">Ticks</span> <span class="re2">-ge</span> <span class="nu0">0</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#40;</span><span class="re4"><span class="br0">&#91;</span>DateTime<span class="br0">&#93;</span></span><span class="re3">$diff</span>.<span class="me1">Ticks</span><span class="br0">&#41;</span>.<span class="me1">ToString</span><span class="br0">&#40;</span><span class="st0">&quot; HH:mm.ss&quot;</span><span class="br0">&#41;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#40;</span><span class="re4"><span class="br0">&#91;</span>DateTime<span class="br0">&#93;</span><span class="br0">&#91;</span>Math<span class="br0">&#93;</span></span>::<span class="me2">Abs</span><span class="br0">&#40;</span><span class="re3">$diff</span>.<span class="me1">Ticks</span><span class="br0">&#41;</span><span class="br0">&#41;</span>.<span class="me1">ToString</span><span class="br0">&#40;</span><span class="st0">&quot;-HH:mm.ss&quot;</span><span class="br0">&#41;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="br0">&#125;</span></div></li>\
<li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li>\
<li class="li2"><div class="de2">&nbsp;</div></li>\
<li class="li1"><div class="de1"><span class="co1">## Create and store a scriptblock to sound the alarm</span></div></li>\
<li class="li2"><div class="de2"><span class="re3">$TimerStuff</span><span class="br0">&#91;</span><span class="st0">&quot;AlarmFunction&quot;</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="br0">&#123;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="kw1">if</span><span class="br0">&#40;</span><span class="re3">$BootsTimer</span>.<span class="me1">Tag</span><span class="br0">&#91;</span><span class="st0">&quot;Sound&quot;</span><span class="br0">&#93;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; <span class="re3">$BootsTimer</span>.<span class="me1">Tag</span><span class="br0">&#91;</span><span class="st0">&quot;Sound&quot;</span><span class="br0">&#93;</span>.<span class="me1">Play</span><span class="br0">&#40;</span><span class="br0">&#41;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; <span class="re4"><span class="br0">&#91;</span><span class="kw3">System</span>.<span class="me1">Media</span>.<span class="me1">SystemSounds</span><span class="br0">&#93;</span></span>::<span class="me2">Exclamation</span>.<span class="me1">Play</span><span class="br0">&#40;</span><span class="br0">&#41;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="br0">&#125;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="kw1">if</span><span class="br0">&#40;</span><span class="re3">$BootsTimer</span>.<span class="me1">Tag</span><span class="br0">&#91;</span><span class="st0">&quot;EndMessage&quot;</span><span class="br0">&#93;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; <span class="re3">$null</span> <span class="sy0">=</span> <span class="re3">$BootsTimer</span>.<span class="me1">Tag</span><span class="br0">&#91;</span><span class="st0">&quot;Voice&quot;</span><span class="br0">&#93;</span>.<span class="me1">Speak</span><span class="br0">&#40;</span> <span class="re3">$BootsTimer</span>.<span class="me1">Tag</span><span class="br0">&#91;</span><span class="st0">&quot;EndMessage&quot;</span><span class="br0">&#93;</span>, <span class="nu0">1</span> <span class="br0">&#41;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="br0">&#125;</span></div></li>\
<li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li>\
<li class="li2"><div class="de2">&nbsp;</div></li>\
<li class="li1"><div class="de1"><span class="co1">## Store the &quot;EndMessage&quot; message</span></div></li>\
<li class="li2"><div class="de2"><span class="kw1">if</span><span class="br0">&#40;</span><span class="re3">$EndMessage</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="re3">$TimerStuff</span><span class="br0">&#91;</span><span class="st0">&quot;EndMessage&quot;</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="re3">$EndMessage</span></div></li>\
<li class="li2"><div class="de2"><span class="br0">&#125;</span></div></li>\
<li class="li1"><div class="de1"><span class="co1">## If they provided a second status message, read it out loud</span></div></li>\
<li class="li2"><div class="de2"><span class="kw1">if</span><span class="br0">&#40;</span><span class="re3">$StartMessage</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="re3">$null</span> <span class="sy0">=</span> <span class="re3">$TimerStuff</span><span class="br0">&#91;</span><span class="st0">&quot;Voice&quot;</span><span class="br0">&#93;</span>.<span class="me1">Speak</span><span class="br0">&#40;</span> <span class="re3">$StartMessage</span>, <span class="nu0">1</span> <span class="br0">&#41;</span></div></li>\
<li class="li2"><div class="de2"><span class="br0">&#125;</span></div></li>\
<li class="li1"><div class="de1">&nbsp;</div></li>\
<li class="li2"><div class="de2"><span class="co1">## Make the window ...</span></div></li>\
<li class="li1"><div class="de1"><span class="re3">$Global</span>:BootsTimer <span class="sy0">=</span> boots <span class="re2">-WindowStyle</span> None <span class="re2">-AllowsTransparency</span> <span class="re3">$true</span> <span class="re2">-Topmost</span> <span class="re3">$true</span> <span class="br0">&#123;</span> </div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;TextBlock <span class="st0">&quot;&quot;</span> <span class="re2">-FontSize</span> <span class="re3">$FontSize</span> <span class="re2">-FontFamily</span> Impact <span class="re2">-margin</span> <span class="nu0">20</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;`</div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re2">-BitmapEffect</span> $<span class="br0">&#40;</span>OuterGlowBitmapEffect <span class="re2">-GlowColor</span> White <span class="re2">-GlowSize</span> <span class="nu0">15</span><span class="br0">&#41;</span> `</div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re2">-Foreground</span> $<span class="br0">&#40;</span>LinearGradientBrush <span class="re2">-Start</span> <span class="st0">&quot;1,1&quot;</span> <span class="re2">-End</span> <span class="st0">&quot;0,1&quot;</span> <span class="br0">&#123;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;GradientStop <span class="re2">-Color</span> Black <span class="re2">-Offset</span> <span class="nu0">0.0</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;GradientStop <span class="re2">-Color</span> Black <span class="re2">-Offset</span> <span class="nu0">0.95</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;GradientStop <span class="re2">-Color</span> Red <span class="re2">-Offset</span> <span class="nu0">1.0</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;GradientStop <span class="re2">-Color</span> Red <span class="re2">-Offset</span> <span class="nu0">1.0</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span> <span class="co1"># -TextDecorations ([System.Windows.TextDecorations]::Underline)</span></div></li>\
<li class="li2"><div class="de2">&nbsp;</div></li>\
<li class="li1"><div class="de1"><span class="br0">&#125;</span> <span class="re2">-On_MouseDown</span> <span class="br0">&#123;</span> </div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="kw1">if</span><span class="br0">&#40;</span><span class="re3">$_</span>.<span class="me1">ChangedButton</span> <span class="re2">-eq</span> <span class="st0">&quot;Left&quot;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="re3">$this</span>.<span class="me1">DragMove</span><span class="br0">&#40;</span><span class="br0">&#41;</span> &nbsp;<span class="br0">&#125;</span></div></li>\
<li class="li1"><div class="de1"><span class="br0">&#125;</span> <span class="re2">-On_Close</span> <span class="br0">&#123;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="re3">$this</span>.<span class="me1">Tag</span><span class="br0">&#91;</span><span class="st0">&quot;Timer&quot;</span><span class="br0">&#93;</span>.<span class="me1">Stop</span><span class="br0">&#40;</span><span class="br0">&#41;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="re0">Remove-<span class="re1">BootsWindow</span></span> <span class="re3">$this</span></div></li>\
<li class="li2"><div class="de2"><span class="br0">&#125;</span> <span class="re2">-Async</span> <span class="re2">-Popup</span> <span class="re2">-Passthru</span> <span class="re2">-Background</span> Transparent <span class="re2">-ShowInTaskbar</span> <span class="re3">$False</span> <span class="re2">-Tag</span> <span class="re3">$TimerStuff</span> </div></li>\
<li class="li1"><div class="de1">&nbsp;</div></li>\
<li class="li2"><div class="de2"><span class="co1">## Now we need to call that scriptblock on a timer. That\'s easy, but it</span></div></li>\
<li class="li1"><div class="de1"><span class="co1">## must be done on the window\'s thread, so we use Invoke-BootsWindow.</span></div></li>\
<li class="li2"><div class="de2"><span class="co1">## Notice the first argument is the window we want to run the script in</span></div></li>\
<li class="li1"><div class="de1"><span class="re0">Invoke-<span class="re1">BootsWindow</span></span> <span class="re3">$BootsTimer</span> <span class="br0">&#123;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="co1">## We\'ll create a timer</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="re3">$BootsTimer</span>.<span class="me1">Tag</span><span class="br0">&#91;</span><span class="st0">&quot;Timer&quot;</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="re0">new-<span class="re1">object</span></span> <span class="kw3">System</span>.<span class="me1">Windows</span>.<span class="me1">Threading</span>.<span class="me1">DispatcherTimer</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="re3">$BootsTimer</span>.<span class="me1">Tag</span><span class="br0">&#91;</span><span class="st0">&quot;Timer&quot;</span><span class="br0">&#93;</span>.<span class="me1">Interval</span> <span class="sy0">=</span> <span class="re4"><span class="br0">&#91;</span>TimeSpan<span class="br0">&#93;</span></span><span class="st0">&quot;0:0:0.05&quot;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="co1">## And will invoke the $updateBlock</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="re3">$BootsTimer</span>.<span class="me1">Tag</span><span class="br0">&#91;</span><span class="st0">&quot;Timer&quot;</span><span class="br0">&#93;</span>.<span class="me1">Add_Tick</span><span class="br0">&#40;</span> <span class="br0">&#123;</span> </div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw1">trap</span> <span class="br0">&#123;</span> </div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="re0">write-<span class="re1">host</span></span> <span class="st0">&quot;Error: $_&quot;</span> <span class="re2">-fore</span> Red </div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="re0">write-<span class="re1">host</span></span> $<span class="br0">&#40;</span><span class="re3">$_</span>.<span class="me1">Exception</span>.<span class="me1">StackTrace</span> <span class="sy0">|</span> <span class="re0">Out-<span class="re1">String</span></span><span class="br0">&#41;</span> <span class="re2">-fore</span> Red </div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; <span class="re3">$remain</span>, <span class="re3">$BootsTimer</span>.<span class="me1">Content</span>.<span class="me1">Text</span> <span class="sy0">=</span> <span class="sy0">&amp;</span> <span class="re3">$BootsTimer</span>.<span class="me1">Tag</span><span class="br0">&#91;</span><span class="st0">&quot;NowFunction&quot;</span><span class="br0">&#93;</span> </div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; <span class="re3">$remain</span> <span class="sy0">=</span> <span class="re3">$remain</span> <span class="sy0">/</span> <span class="re3">$BootsTimer</span>.<span class="me1">Tag</span><span class="br0">&#91;</span><span class="st0">&quot;seconds&quot;</span><span class="br0">&#93;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; <span class="co1">## Move the gradient a little bit each time.</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; <span class="re3">$BootsTimer</span>.<span class="me1">Content</span>.<span class="me1">Foreground</span>.<span class="me1">GradientStops</span><span class="br0">&#91;</span><span class="nu0">2</span><span class="br0">&#93;</span>.<span class="me1">Offset</span> <span class="sy0">=</span> <span class="re4"><span class="br0">&#91;</span>Math<span class="br0">&#93;</span></span>::<span class="me2">Max</span><span class="br0">&#40;</span><span class="nu0">0.0</span>, <span class="re3">$remain</span><span class="br0">&#41;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; <span class="re3">$BootsTimer</span>.<span class="me1">Content</span>.<span class="me1">Foreground</span>.<span class="me1">GradientStops</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span>.<span class="me1">Offset</span> <span class="sy0">=</span> <span class="re4"><span class="br0">&#91;</span>Math<span class="br0">&#93;</span></span>::<span class="me2">Max</span><span class="br0">&#40;</span><span class="nu0">0.0</span>, <span class="re3">$remain</span> <span class="sy0">-</span> <span class="nu0">0.05</span><span class="br0">&#41;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; <span class="co1">## When we get to the end ... make a few changes</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="re3">$remain</span> <span class="re2">-le</span> <span class="nu0">0</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="co1">## The first time we hit the end, we want to add a mouse click handler...</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw1">if</span><span class="br0">&#40;</span><span class="re3">$this</span>.<span class="me1">Interval</span>.<span class="me1">Seconds</span> <span class="re2">-eq</span> <span class="nu0">0</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">## Which will now only fire every few seconds</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">## So it\'s easier to close the window ;)</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re3">$this</span>.<span class="me1">Interval</span> <span class="sy0">=</span> <span class="re4"><span class="br0">&#91;</span>TimeSpan<span class="br0">&#93;</span></span><span class="st0">&quot;0:0:2&quot;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">## If you click on the finished window, it just goes away</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re3">$BootsTimer</span>.<span class="me1">Add_MouseDown</span><span class="br0">&#40;</span> <span class="br0">&#123;</span> <span class="re3">$BootsTimer</span>.<span class="me1">Close</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#125;</span> <span class="br0">&#41;</span> </div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">## But if they chose -SingleAlarm, they don\'t neeto bother</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="re3">$BootsTimer</span>.<span class="me1">Tag</span><span class="br0">&#91;</span><span class="st0">&quot;SingleAlarm&quot;</span><span class="br0">&#93;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="re3">$BootsTimer</span>.<span class="me1">Close</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#125;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="br0">&#125;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="sy0">&amp;</span> <span class="re3">$BootsTimer</span>.<span class="me1">Tag</span><span class="br0">&#91;</span><span class="st0">&quot;AlarmFunction&quot;</span><span class="br0">&#93;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="br0">&#125;</span> <span class="br0">&#41;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="co1">## Now start the timer running</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="re3">$BootsTimer</span>.<span class="me1">Tag</span><span class="br0">&#91;</span><span class="st0">&quot;Timer&quot;</span><span class="br0">&#93;</span>.<span class="kw4">Start</span><span class="br0">&#40;</span><span class="br0">&#41;</span></div></li>\
<li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li>\
<li class="li2"><div class="de2"><span class="br0">&#125;</span></div></li>\
</ol></div>');document.write('<div class="poshcredit"><a style="float:right;" href="http://poshcode.org/get/1046" title="download file">download</a><a href="http://poshcode.org/?show=1046" title="full view">This Script</a> brought to you by <a href="http://PoshCode.org">PoshCode</a>\
</div>\
</div>\
</div>');