I need help trying to output a WPF GUI window to a rendered video (mp4) via Powershell. i assume the last line is what will need to be modified to output to the video instead of the GUI. i assume the video parameters will need to be added somewhere but im not sure what is needed yet. i guestimate the video will be 15 or 30 seconds long. I am ok if this is done with ShowUI as well. Ive been searching for days and i cannot find anything related. Thank you for the help!
Here is the code below:
<pre class=“default prettyprint prettyprinted”><span class=“com”>#JLo </span><span class=“com”>#Concept: turn rss and other realtime feeds info into animated videos </span><span class=“typ”>Add</span><span class=“pun”>-</span><span class=“typ”>Type</span><span class=“pun”>-</span><span class=“typ”>AssemblyName</span><span class=“pln”> presentationframework
cls
</span><span class=“pun”>[</span><span class=“pln”>xml</span><span class=“pun”>]</span><span class=“pln”>$XAML </span><span class=“pun”>=</span><span class=“pun”>@</span><span class=“str”>"
<Window
xmlns=“</span><span class=“pln”>http</span><span class=“pun”>:</span><span class=“com”>//schemas.microsoft.com/winfx/2006/xaml/presentation”</span><span class=“pln”>
xmlns</span><span class=“pun”>:</span><span class=“pln”>x</span><span class=“pun”>=</span><span class=“str”>“http://schemas.microsoft.com/winfx/2006/xaml”</span><span class=“typ”>Title</span><span class=“pun”>=</span><span class=“str”>“MainWindow”</span><span class=“typ”>Height</span><span class=“pun”>=</span><span class=“str”>“720”</span><span class=“typ”>Width</span><span class=“pun”>=</span><span class=“str”>“1280”</span><span class=“typ”>Background</span><span class=“pun”>=</span><span class=“str”>“White”</span><span class=“pun”>></span><span class=“pun”><</span><span class=“typ”>Grid</span><span class=“pun”>></span><span class=“pun”><</span><span class=“typ”>Label</span><span class=“pln”> x</span><span class=“pun”>:</span><span class=“typ”>Name</span><span class=“pun”>=</span><span class=“str”>“TopLabel”</span><span class=“typ”>HorizontalAlignment</span><span class=“pun”>=</span><span class=“str”>“Left”</span><span class=“typ”>VerticalAlignment</span><span class=“pun”>=</span><span class=“str”>“Top”</span><span class=“typ”>Height</span><span class=“pun”>=</span><span class=“str”>“360”</span><span class=“typ”>Width</span><span class=“pun”>=</span><span class=“str”>“1280”</span><span class=“pun”>></span><span class=“pun”><</span><span class=“typ”>Image</span><span class=“pln”> x</span><span class=“pun”>:</span><span class=“typ”>Name</span><span class=“pun”>=</span><span class=“str”>“logo”</span><span class=“typ”>Height</span><span class=“pun”>=</span><span class=“str”>“350”</span><span class=“typ”>Width</span><span class=“pun”>=</span><span class=“str”>“1270”</span><span class=“typ”>Source</span><span class=“pun”>=</span><span class=“str”>“http://www.johnjlopez.com/jlo.jpg”</span><span class=“pun”>/></span><span class=“pun”></</span><span class=“typ”>Label</span><span class=“pun”>></span><span class=“pun”><</span><span class=“typ”>Label</span><span class=“pln”> x</span><span class=“pun”>:</span><span class=“typ”>Name</span><span class=“pun”>=</span><span class=“str”>“BottomLeft”</span><span class=“typ”>Content</span><span class=“pun”>=</span><span class=“str”>“Label”</span><span class=“typ”>HorizontalAlignment</span><span class=“pun”>=</span><span class=“str”>“Left”</span><span class=“typ”>Margin</span><span class=“pun”>=</span><span class=“str”>“0,365,0,0”</span><span class=“typ”>VerticalAlignment</span><span class=“pun”>=</span><span class=“str”>“Top”</span><span class=“typ”>Height</span><span class=“pun”>=</span><span class=“str”>“325”</span><span class=“typ”>Width</span><span class=“pun”>=</span><span class=“str”>“635”</span><span class=“typ”>Background</span><span class=“pun”>=</span><span class=“str”>“#FF84C5C9”</span><span class=“typ”>Foreground</span><span class=“pun”>=</span><span class=“str”>“White”</span><span class=“typ”>FontSize</span><span class=“pun”>=</span><span class=“str”>“18”</span><span class=“pun”>/></span><span class=“pun”><</span><span class=“typ”>Label</span><span class=“pln”> x</span><span class=“pun”>:</span><span class=“typ”>Name</span><span class=“pun”>=</span><span class=“str”>“BottomRight”</span><span class=“typ”>Content</span><span class=“pun”>=</span><span class=“str”>“Label”</span><span class=“typ”>HorizontalAlignment</span><span class=“pun”>=</span><span class=“str”>“Left”</span><span class=“typ”>Margin</span><span class=“pun”>=</span><span class=“str”>“645,365,0,0”</span><span class=“typ”>VerticalAlignment</span><span class=“pun”>=</span><span class=“str”>“Top”</span><span class=“typ”>Height</span><span class=“pun”>=</span><span class=“str”>“325”</span><span class=“typ”>Width</span><span class=“pun”>=</span><span class=“str”>“635”</span><span class=“typ”>Background</span><span class=“pun”>=</span><span class=“str”>“white”</span><span class=“typ”>Foreground</span><span class=“pun”>=</span><span class=“str”>“black”</span><span class=“typ”>FontSize</span><span class=“pun”>=</span><span class=“str”>“18”</span><span class=“pun”>/></span><span class=“pun”></</span><span class=“typ”>Grid</span><span class=“pun”>></span><span class=“pun”></</span><span class=“typ”>Window</span><span class=“pun”>></span><span class=“str”>"@
$reader=(New-Object System.Xml.XmlNodeReader $xaml)
$Window=[Windows.Markup.XamlReader]::Load( $reader )
NEWSFEED
$url = “</span><span class=“pln”>http</span><span class=“pun”>:</span><span class=“com”>//feeds.chicagotribune.com/chicagotribune/news/” </span><span class=“pln”>
$array </span><span class=“pun”>=</span><span class=“typ”>Invoke</span><span class=“pun”>-</span><span class=“typ”>RestMethod</span><span class=“pln”> $url </span><span class=“com”>#| Select Title | Format-Table -AutoSize</span><span class=“pun”>[</span><span class=“kwd”>string</span><span class=“pun”>]</span><span class=“pln”>$a </span><span class=“pun”>=</span><span class=“str”>“NEWSn-------
n”</span><span class=“pln”>
$BottomLeft </span><span class=“pun”>=</span><span class=“pln”> $Window</span><span class=“pun”>.</span><span class=“pln”>findname</span><span class=“pun”>(</span><span class=“str”>“BottomLeft”</span><span class=“pun”>)</span><span class=“pln”>
$a </span><span class=“pun”>+=</span><span class=“pln”> $</span><span class=“pun”>(</span><span class=“pln”>$array </span><span class=“pun”>|%{</span><span class=“pln”>$_</span><span class=“pun”>.</span><span class=“pln”>title</span><span class=“pun”>})</span><span class=“pun”>-</span><span class=“pln”>join </span><span class=“str”>“`n”</span><span class=“pln”>
$BottomLeft</span><span class=“pun”>.</span><span class=“typ”>Content</span><span class=“pun”>=</span><span class=“pln”> $a
</span><span class=“com”>#WEATHER FEED</span><span class=“com”>#Based from: </span><span class=“com”>#http://gallery.technet.microsoft.com/scriptcenter/PowerShell-Console-Weather-430a2eb7</span><span class=“com”>#http://jdhitsolutions.com/blog/2010/07/powershell-weather-module/</span><span class=“typ”>Function</span><span class=“typ”>Get</span><span class=“pun”>-</span><span class=“typ”>YahooWeather</span><span class=“pun”>{</span><span class=“pun”>[</span><span class=“pln”>cmdletbinding</span><span class=“pun”>()]</span><span class=“typ”>Param</span><span class=“pun”>(</span><span class=“pun”>[</span><span class=“pln”>parameter</span><span class=“pun”>(</span><span class=“typ”>ValueFromPipeLine</span><span class=“pun”>=</span><span class=“str”>‘True’</span><span class=“pun”>)]</span><span class=“pun”>[</span><span class=“kwd”>string</span><span class=“pun”>]</span><span class=“pln”>$ZipCode </span><span class=“pun”>=</span><span class=“str”>“60625”</span><span class=“pun”>)</span><span class=“typ”>Begin</span><span class=“pun”>{</span><span class=“pln”>
$Webclient </span><span class=“pun”>=</span><span class=“typ”>New</span><span class=“pun”>-</span><span class=“typ”>Object</span><span class=“typ”>Net</span><span class=“pun”>.</span><span class=“typ”>WebClient</span><span class=“pln”>
$Webclient</span><span class=“pun”>.</span><span class=“typ”>UseDefaultCredentials</span><span class=“pun”>=</span><span class=“pln”> $True
</span><span class=“pun”>}</span><span class=“typ”>Process</span><span class=“pun”>{</span><span class=“typ”>ForEach</span><span class=“pun”>(</span><span class=“pln”>$Zip </span><span class=“kwd”>in</span><span class=“pln”> $ZipCode</span><span class=“pun”>)</span><span class=“pun”>{</span><span class=“typ”>Try</span><span class=“pun”>{</span><span class=“pln”>
$weather </span><span class=“pun”>=</span><span class=“pun”>([</span><span class=“pln”>xml</span><span class=“pun”>]</span><span class=“pln”>$webclient</span><span class=“pun”>.</span><span class=“typ”>DownloadString</span><span class=“pun”>(</span><span class=“str”>“http://weather.yahooapis.com/forecastrss?p=$Zip”</span><span class=“pun”>)).</span><span class=“pln”>rss</span><span class=“pun”>.</span><span class=“typ”>Channel</span><span class=“pln”>
$weatherhash </span><span class=“pun”>=</span><span class=“pun”>@{</span><span class=“typ”>Sunrise</span><span class=“pun”>=</span><span class=“pln”> $weather</span><span class=“pun”>.</span><span class=“pln”>astronomy</span><span class=“pun”>.</span><span class=“typ”>Sunrise</span><span class=“typ”>Sunset</span><span class=“pun”>=</span><span class=“pln”> $weather</span><span class=“pun”>.</span><span class=“pln”>astronomy</span><span class=“pun”>.</span><span class=“typ”>Sunset</span><span class=“typ”>Temperature</span><span class=“pun”>=</span><span class=“str”>“{0}{1}F”</span><span class=“pun”>-</span><span class=“pln”>f $weather</span><span class=“pun”>.</span><span class=“typ”>Item</span><span class=“pun”>.</span><span class=“typ”>Condition</span><span class=“pun”>.</span><span class=“typ”>Temp</span><span class=“pun”>,[</span><span class=“kwd”>char</span><span class=“pun”>]</span><span class=“lit”>176</span><span class=“typ”>Conditions</span><span class=“pun”>=</span><span class=“pln”> $weather</span><span class=“pun”>.</span><span class=“typ”>Item</span><span class=“pun”>.</span><span class=“typ”>Condition</span><span class=“pun”>.</span><span class=“typ”>Text</span><span class=“typ”>City</span><span class=“pun”>=</span><span class=“pln”> $weather</span><span class=“pun”>.</span><span class=“typ”>Location</span><span class=“pun”>.</span><span class=“typ”>City</span><span class=“typ”>State</span><span class=“pun”>=</span><span class=“pln”> $weather</span><span class=“pun”>.</span><span class=“typ”>Location</span><span class=“pun”>.</span><span class=“typ”>Region</span><span class=“typ”>Country</span><span class=“pun”>=</span><span class=“pln”> $weather</span><span class=“pun”>.</span><span class=“typ”>Location</span><span class=“pun”>.</span><span class=“typ”>Country</span><span class=“typ”>WindChill</span><span class=“pun”>=</span><span class=“pln”> $weather</span><span class=“pun”>.</span><span class=“typ”>Wind</span><span class=“pun”>.</span><span class=“typ”>Chill</span><span class=“typ”>WindSpeed</span><span class=“pun”>=</span><span class=“pln”> $weather</span><span class=“pun”>.</span><span class=“typ”>Wind</span><span class=“pun”>.</span><span class=“typ”>Speed</span><span class=“typ”>LastUpdated</span><span class=“pun”>=</span><span class=“pun”>[</span><span class=“pln”>datetime</span><span class=“pun”>]</span><span class=“str”>“$(($weather.LastBuildDate | Select-String -pattern “</span><span class=“pln”>\w</span><span class=“pun”>+,</span><span class=“pln”>\s\d</span><span class=“pun”>{</span><span class=“lit”>1</span><span class=“pun”>,</span><span class=“lit”>2</span><span class=“pun”>}</span><span class=“pln”>\s\w</span><span class=“pun”>+</span><span class=“pln”>\s\d</span><span class=“pun”>{</span><span class=“lit”>4</span><span class=“pun”>}</span><span class=“pln”>\s\d</span><span class=“pun”>{</span><span class=“lit”>1</span><span class=“pun”>,</span><span class=“lit”>2</span><span class=“pun”>}:</span><span class=“pln”>\d</span><span class=“pun”>{</span><span class=“lit”>1</span><span class=“pun”>,</span><span class=“lit”>2</span><span class=“pun”>}</span><span class=“pln”>\s\w</span><span class=“pun”>{</span><span class=“lit”>2</span><span class=“pun”>}</span><span class=“str”>”).matches[0].value)”</span><span class=“typ”>HiTemp</span><span class=“pun”>=</span><span class=“str”>“{0}{1}F”</span><span class=“pun”>-</span><span class=“pln”>f $Weather</span><span class=“pun”>.</span><span class=“pln”>item</span><span class=“pun”>.</span><span class=“pln”>forecast</span><span class=“pun”>[</span><span class=“lit”>0</span><span class=“pun”>].</span><span class=“typ”>High</span><span class=“pun”>,[</span><span class=“kwd”>char</span><span class=“pun”>]</span><span class=“lit”>176</span><span class=“typ”>LowTemp</span><span class=“pun”>=</span><span class=“str”>“{0}{1}F”</span><span class=“pun”>-</span><span class=“pln”>f $Weather</span><span class=“pun”>.</span><span class=“pln”>item</span><span class=“pun”>.</span><span class=“pln”>forecast</span><span class=“pun”>[</span><span class=“lit”>0</span><span class=“pun”>].</span><span class=“typ”>Low</span><span class=“pun”>,[</span><span class=“kwd”>char</span><span class=“pun”>]</span><span class=“lit”>176</span><span class=“pun”>}</span><span class=“pln”>
$weatherobject </span><span class=“pun”>=</span><span class=“typ”>New</span><span class=“pun”>-</span><span class=“typ”>Object</span><span class=“typ”>PSObject</span><span class=“pun”>-</span><span class=“typ”>Property</span><span class=“pln”> $weatherhash
$weatherobject</span><span class=“pun”>.</span><span class=“typ”>PSTypeNames</span><span class=“pun”>.</span><span class=“typ”>Insert</span><span class=“pun”>(</span><span class=“lit”>0</span><span class=“pun”>,</span><span class=“str”>“Weather.Info”</span><span class=“pun”>)</span><span class=“typ”>Write</span><span class=“pun”>-</span><span class=“typ”>Output</span><span class=“pln”> $weatherobject
</span><span class=“pun”>}</span><span class=“typ”>Catch</span><span class=“pun”>{</span><span class=“typ”>Write</span><span class=“pun”>-</span><span class=“typ”>Warning</span><span class=“str”>“$($Error[0])”</span><span class=“pun”>}</span><span class=“pun”>}</span><span class=“pun”>}</span><span class=“pun”>}</span><span class=“pln”>
$weather </span><span class=“pun”>=</span><span class=“kwd”>get</span><span class=“pun”>-</span><span class=“pln”>yahooweather </span><span class=“lit”>60601</span><span class=“pun”>[</span><span class=“kwd”>string</span><span class=“pun”>]</span><span class=“pln”>$B </span><span class=“pun”>=</span><span class=“str”>“WEATHERn-----------
n”</span><span class=“pln”>
$b </span><span class=“pun”>+=</span><span class=“pln”> $weather</span><span class=“pun”>|</span><span class=“kwd”>select</span><span class=“typ”>City</span><span class=“pun”>,</span><span class=“typ”>Temperature</span><span class=“pun”>,</span><span class=“typ”>HiTemp</span><span class=“pun”>,</span><span class=“typ”>LowTemp</span><span class=“pun”>,</span><span class=“typ”>WindChill</span><span class=“pun”>,</span><span class=“typ”>Sunset</span><span class=“pun”>,</span><span class=“typ”>Conditions</span><span class=“pun”>|</span><span class=“typ”>Out</span><span class=“pun”>-</span><span class=“kwd”>string</span><span class=“com”>#-join “`n”</span><span class=“pln”>
$Bottomright </span><span class=“pun”>=</span><span class=“pln”> $Window</span><span class=“pun”>.</span><span class=“pln”>findname</span><span class=“pun”>(</span><span class=“str”>“BottomRight”</span><span class=“pun”>)</span><span class=“pln”>
$Bottomright</span><span class=“pun”>.</span><span class=“typ”>Content</span><span class=“pun”>=</span><span class=“pln”> $b
$Window</span><span class=“pun”>.</span><span class=“typ”>ShowDialog</span><span class=“pun”>()</span><span class=“pun”>|</span><span class=“kwd”>out</span><span class=“pun”>-</span><span class=“kwd”>null
This is also posted at:
http://stackoverflow.com/questions/17283616/how-to-render-a-powershell-wpf-gui-to-a-video-file
</span>