<span style="color: #008080;">[Reflection.Assembly]</span><span style="color: #a9a9a9;">::</span><span style="color: #000000;">LoadWithPartialName</span><span style="color: #000000;">(</span><span style="color: #8b0000;">"System.IO"</span><span style="color: #000000;">)</span>
<span style="color: #008080;">[Reflection.Assembly]</span><span style="color: #a9a9a9;">::</span><span style="color: #000000;">LoadWithPartialName</span><span style="color: #000000;">(</span><span style="color: #8b0000;">"System.IO.IsolatedStorage"</span><span style="color: #000000;">)</span>
<span style="color: #008080;">[Reflection.Assembly]</span><span style="color: #a9a9a9;">::</span><span style="color: #000000;">LoadWithPartialName</span><span style="color: #000000;">(</span><span style="color: #8b0000;">"System.Xml"</span><span style="color: #000000;">)</span>
<span style="color: #008080;">[Reflection.Assembly]</span><span style="color: #a9a9a9;">::</span><span style="color: #000000;">LoadWithPartialName</span><span style="color: #000000;">(</span><span style="color: #8b0000;">"System.Xml.Serialization"</span><span style="color: #000000;">)</span>
<span style="color: #00008b;">function</span> <span style="color: #8a2be2;">New-EventAction</span> <span style="color: #000000;">{</span>
<span style="color: #00008b;">param</span> <span style="color: #000000;">(</span><span style="color: #008080;">[System.Management.Automation.PSEventArgs]</span><span style="color: #ff4500;">$objEvent</span><span style="color: #000000;">)</span>
<span style="color: #ff4500;">$changedProperty</span> <span style="color: #a9a9a9;">=</span> <span style="color: #000000;">(</span><span style="color: #ff4500;">$objEvent</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">SourceEventArgs</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">PropertyName</span><span style="color: #000000;">)</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">ToString</span><span style="color: #000000;">(</span><span style="color: #000000;">)</span>
<span style="color: #0000ff;">Write-Host</span> <span style="color: #8b0000;">"Value of $changedProperty changed to $($objEvent.SourceArgs.Get(0).$changedProperty)"</span>
<span style="color: #ff4500;">$useriStorage</span> <span style="color: #a9a9a9;">=</span> <span style="color: #008080;">[System.IO.IsolatedStorage.IsolatedStorageFile]</span><span style="color: #a9a9a9;">::</span><span style="color: #000000;">GetUserStoreForAssembly</span><span style="color: #000000;">(</span><span style="color: #000000;">)</span>
<span style="color: #ff4500;">$file</span> <span style="color: #a9a9a9;">=</span> <span style="color: #0000ff;">New-Object</span> <span style="color: #8a2be2;">System.IO.IsolatedStorage.IsolatedStorageFileStream</span><span style="color: #000000;">(</span><span style="color: #8b0000;">"UISettigs.xml"</span><span style="color: #a9a9a9;">,</span><span style="color: #008080;">[System.IO.FileMode]</span><span style="color: #a9a9a9;">::</span><span style="color: #000000;">Create</span><span style="color: #a9a9a9;">,</span><span style="color: #ff4500;">$useriStorage</span><span style="color: #000000;">)</span>
<span style="color: #ff4500;">$xml</span> <span style="color: #a9a9a9;">=</span> <span style="color: #0000ff;">New-Object</span> <span style="color: #8a2be2;">System.Xml.Serialization.XmlSerializer</span><span style="color: #000000;">(</span><span style="color: #ff4500;">$PSISE</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">Options</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">GetType</span><span style="color: #000000;">(</span><span style="color: #000000;">)</span><span style="color: #000000;">)</span>
<span style="color: #ff4500;">$xml</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">Serialize</span><span style="color: #000000;">(</span><span style="color: #ff4500;">$file</span><span style="color: #a9a9a9;">,</span><span style="color: #ff4500;">$psISE</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">Options</span><span style="color: #000000;">)</span>
<span style="color: #ff4500;">$file</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">Close</span><span style="color: #000000;">(</span><span style="color: #000000;">)</span>
<span style="color: #ff4500;">$useriStorage</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">Close</span><span style="color: #000000;">(</span><span style="color: #000000;">)</span>
<span style="color: #000000;">}</span>
<span style="color: #00008b;">function</span> <span style="color: #8a2be2;">Update-ISEOptions</span> <span style="color: #000000;">{</span>
<span style="color: #ff4500;">$useriStorage</span> <span style="color: #a9a9a9;">=</span> <span style="color: #008080;">[System.IO.IsolatedStorage.IsolatedStorageFile]</span><span style="color: #a9a9a9;">::</span><span style="color: #000000;">GetUserStoreForAssembly</span><span style="color: #000000;">(</span><span style="color: #000000;">)</span>
<span style="color: #00008b;">try</span> <span style="color: #000000;">{</span>
<span style="color: #ff4500;">$file</span> <span style="color: #a9a9a9;">=</span> <span style="color: #0000ff;">New-Object</span> <span style="color: #8a2be2;">System.IO.IsolatedStorage.IsolatedStorageFileStream</span><span style="color: #000000;">(</span><span style="color: #8b0000;">"UISettigs.xml"</span><span style="color: #a9a9a9;">,</span><span style="color: #008080;">[System.IO.FileMode]</span><span style="color: #a9a9a9;">::</span><span style="color: #000000;">Open</span><span style="color: #a9a9a9;">,</span><span style="color: #ff4500;">$useriStorage</span><span style="color: #000000;">)</span>
<span style="color: #000000;">}</span>
<span style="color: #00008b;">catch</span> <span style="color: #000000;">{</span>
<span style="color: #0000ff;">Write-Host</span> <span style="color: #8b0000;">"UISettings.xml is not found"</span>
<span style="color: #00008b;">return</span>
<span style="color: #000000;">}</span>
<span style="color: #ff4500;">$xmlReader</span> <span style="color: #a9a9a9;">=</span> <span style="color: #0000ff;">New-Object</span> <span style="color: #8a2be2;">System.Xml.XmlTextReader</span><span style="color: #000000;">(</span><span style="color: #ff4500;">$file</span><span style="color: #000000;">)</span>
<span style="color: #ff4500;">$xml</span> <span style="color: #a9a9a9;">=</span> <span style="color: #0000ff;">New-Object</span> <span style="color: #8a2be2;">System.Xml.Serialization.XmlSerializer</span><span style="color: #000000;">(</span><span style="color: #ff4500;">$PSISE</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">Options</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">GetType</span><span style="color: #000000;">(</span><span style="color: #000000;">)</span><span style="color: #000000;">)</span>
<span style="color: #ff4500;">$newISEOptions</span> <span style="color: #a9a9a9;">=</span> <span style="color: #ff4500;">$xml</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">Deserialize</span><span style="color: #000000;">(</span><span style="color: #ff4500;">$xmlReader</span><span style="color: #000000;">)</span>
<span style="color: #ff4500;">$psISE</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">Options</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">SelectedScriptPaneState</span><span style="color: #a9a9a9;">=</span><span style="color: #ff4500;">$newISEOptions</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">SelectedScriptPaneState</span>
<span style="color: #ff4500;">$psISE</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">Options</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">ShowToolBar</span><span style="color: #a9a9a9;">=</span><span style="color: #ff4500;">$newISEOptions</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">ShowToolBar</span>
<span style="color: #ff4500;">$psISE</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">Options</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">FontSize</span><span style="color: #a9a9a9;">=</span><span style="color: #ff4500;">$newISEOptions</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">FontSize</span>
<span style="color: #ff4500;">$psISE</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">Options</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">FontName</span><span style="color: #a9a9a9;">=</span><span style="color: #ff4500;">$newISEOptions</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">FontName</span>
<span style="color: #ff4500;">$psISE</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">Options</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">ErrorForegroundColor</span><span style="color: #a9a9a9;">=</span><span style="color: #ff4500;">$newISEOptions</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">ErrorForegroundColor</span>
<span style="color: #ff4500;">$psISE</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">Options</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">ErrorBackgroundColor</span><span style="color: #a9a9a9;">=</span><span style="color: #ff4500;">$newISEOptions</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">ErrorBackgroundColor</span>
<span style="color: #ff4500;">$psISE</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">Options</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">WarningForegroundColor</span><span style="color: #a9a9a9;">=</span><span style="color: #ff4500;">$newISEOptions</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">WarningForegroundColor</span>
<span style="color: #ff4500;">$psISE</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">Options</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">WarningBackgroundColor</span><span style="color: #a9a9a9;">=</span><span style="color: #ff4500;">$newISEOptions</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">WarningBackgroundColor</span>
<span style="color: #ff4500;">$psISE</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">Options</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">VerboseForegroundColor</span><span style="color: #a9a9a9;">=</span><span style="color: #ff4500;">$newISEOptions</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">VerboseForegroundColor</span>
<span style="color: #ff4500;">$psISE</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">Options</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">VerboseBackgroundColor</span><span style="color: #a9a9a9;">=</span><span style="color: #ff4500;">$newISEOptions</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">VerboseBackgroundColor</span>
<span style="color: #ff4500;">$psISE</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">Options</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">DebugForegroundColor</span><span style="color: #a9a9a9;">=</span><span style="color: #ff4500;">$newISEOptions</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">DebugForegroundColor</span>
<span style="color: #ff4500;">$psISE</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">Options</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">DebugBackgroundColor</span><span style="color: #a9a9a9;">=</span><span style="color: #ff4500;">$newISEOptions</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">DebugBackgroundColor</span>
<span style="color: #ff4500;">$psISE</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">Options</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">OutputPaneBackgroundColor</span><span style="color: #a9a9a9;">=</span><span style="color: #ff4500;">$newISEOptions</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">OutputPaneBackgroundColor</span>
<span style="color: #ff4500;">$psISE</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">Options</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">OutputPaneTextBackgroundColor</span><span style="color: #a9a9a9;">=</span><span style="color: #ff4500;">$newISEOptions</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">OutputPaneTextBackgroundColor</span>
<span style="color: #ff4500;">$psISE</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">Options</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">OutputPaneForegroundColor</span><span style="color: #a9a9a9;">=</span><span style="color: #ff4500;">$newISEOptions</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">OutputPaneForegroundColor</span>
<span style="color: #ff4500;">$psISE</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">Options</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">CommandPaneBackgroundColor</span><span style="color: #a9a9a9;">=</span><span style="color: #ff4500;">$newISEOptions</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">CommandPaneBackgroundColor</span>
<span style="color: #ff4500;">$psISE</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">Options</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">ScriptPaneBackgroundColor</span><span style="color: #a9a9a9;">=</span><span style="color: #ff4500;">$newISEOptions</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">ScriptPaneBackgroundColor</span>
<span style="color: #ff4500;">$psISE</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">Options</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">ScriptPaneForegroundColor</span><span style="color: #a9a9a9;">=</span><span style="color: #ff4500;">$newISEOptions</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">ScriptPaneForegroundColor</span>
<span style="color: #ff4500;">$psISE</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">Options</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">ShowWarningForDuplicateFiles</span><span style="color: #a9a9a9;">=</span><span style="color: #ff4500;">$newISEOptions</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">ShowWarningForDuplicateFiles</span>
<span style="color: #ff4500;">$psISE</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">Options</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">ShowWarningBeforeSavingOnRun</span><span style="color: #a9a9a9;">=</span><span style="color: #ff4500;">$newISEOptions</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">ShowWarningBeforeSavingOnRun</span>
<span style="color: #ff4500;">$psISE</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">Options</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">UseLocalHelp</span><span style="color: #a9a9a9;">=</span><span style="color: #ff4500;">$newISEOptions</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">UseLocalHelp</span>
<span style="color: #ff4500;">$psISE</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">Options</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">CommandPaneUp</span> <span style="color: #a9a9a9;">=</span> <span style="color: #ff4500;">$newISEOptions</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">CommandPaneUp</span>
<span style="color: #ff4500;">$file</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">Close</span><span style="color: #000000;">(</span><span style="color: #000000;">)</span>
<span style="color: #ff4500;">$useriStorage</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">close</span><span style="color: #000000;">(</span><span style="color: #000000;">)</span>
<span style="color: #000000;">}</span>
<span style="color: #00008b;">if</span> <span style="color: #000000;">(</span><span style="color: #ff4500;">$psise</span><span style="color: #000000;">)</span> <span style="color: #000000;">{</span>
<span style="color: #0000ff;">Update-ISEOptions</span>
<span style="color: #0000ff;">Register-ObjectEvent</span> <span style="color: #000080;">-InputObject</span> <span style="color: #ff4500;">$psISE</span><span style="color: #a9a9a9;">.</span><span style="color: #000000;">Options</span> <span style="color: #000080;">-EventName</span> <span style="color: #8a2be2;">PropertyChanged</span> <span style="color: #000080;">-Action</span> <span style="color: #000000;">{</span> <span style="color: #0000ff;">New-EventAction</span> <span style="color: #ff4500;">$Event</span> <span style="color: #000000;">}</span> <span style="color: #a9a9a9;">|</span> <span style="color: #0000ff;">Out-Null</span>
<span style="color: #000000;">}</span>