Guest User

GUI

a guest
Oct 12th, 2017
51
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. cls
  2. try{
  3.  Add-Type -AssemblyName PresentationCore,PresentationFramework,WindowsBase,system.windows.forms
  4.  write-Host "OK"
  5. } catch {
  6.  Throw "Failed to load Windows Presentation Framework assemblies."
  7. }
  8. $inputXML = @"
  9. <Window x:Class="WpfApplication1.MainWindow"
  10.    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  11.    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  12.    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  13.    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  14.    xmlns:local="clr-namespace:WpfApplication1"
  15.    mc:Ignorable="d"
  16.    Title="PowerTool" Height="400" Width="575">
  17.    <Grid Background="#FF0B4A80" >
  18.         <TabControl x:Name="tabControl" SelectionChanged="tabControl_SelectionChanged">
  19.             <TabItem Header="Inventory">
  20.                 <Grid Background="#FF0B4A80" Margin="0,-3,0,3">
  21.                     <Image x:Name="systran_png" Margin="475,10,10,252" Source="systran.png" Stretch="Fill"/>
  22.                     <RadioButton x:Name="Computer" Content="Computer" HorizontalAlignment="Left" Margin="10,16,0,0" VerticalAlignment="Top" />
  23.                     <RadioButton x:Name="Printer" Content="Printer" HorizontalAlignment="Left" Margin="10,45,0,0" VerticalAlignment="Top"/>
  24.                     <TextBox x:Name="ObjectName" HorizontalAlignment="Left" Height="26" Margin="10,87,0,0" TextWrapping="Wrap" Text="Name" VerticalAlignment="Top" Width="93"/>
  25.                     <Button x:Name="launch" Content="Go !" HorizontalAlignment="Left" Height="52" Margin="488,276,0,0" VerticalAlignment="Top" Width="59"/>
  26.                     <CheckBox x:Name="cb_Name" Content="CheckBox" HorizontalAlignment="Left" Height="13" Margin="17,130,0,0" VerticalAlignment="Top" Width="13"/>
  27.                     <CheckBox x:Name="cb_OS" Content="CheckBox" HorizontalAlignment="Left" Height="13" Margin="17,155,0,0" VerticalAlignment="Top" Width="13"/>
  28.                     <CheckBox x:Name="cb_IP" Content="CheckBox" HorizontalAlignment="Left" Height="13" Margin="17,180,0,0" VerticalAlignment="Top" Width="13"/>
  29.                     <CheckBox x:Name="cb_CN" Content="CheckBox" HorizontalAlignment="Left" Height="13" Margin="17,205,0,0" VerticalAlignment="Top" Width="13"/>
  30.                     <CheckBox x:Name="cb_Location" Content="CheckBox" HorizontalAlignment="Left" Height="13" Margin="17,230,0,0" VerticalAlignment="Top" Width="13"/>
  31.                     <TextBlock x:Name="txt_Name" HorizontalAlignment="Left" Margin="35,130,0,0" TextWrapping="Wrap" Text="Name" VerticalAlignment="Top"/>
  32.                     <TextBlock x:Name="txt_OS" HorizontalAlignment="Left" Margin="35,155,0,0" TextWrapping="Wrap" Text="OS" VerticalAlignment="Top"/>
  33.                     <TextBlock x:Name="txt_IP" HorizontalAlignment="Left" Margin="35,180,0,0" TextWrapping="Wrap" Text="IPV4" VerticalAlignment="Top"/>
  34.                     <TextBlock x:Name="txt_CN" HorizontalAlignment="Left" Margin="35,205,0,0" TextWrapping="Wrap" Text="CanonicalName" VerticalAlignment="Top"/>
  35.                     <TextBlock x:Name="txt_Location" HorizontalAlignment="Left" Margin="35,230,0,0" TextWrapping="Wrap" Text="Location" VerticalAlignment="Top"/>
  36.                     <TextBlock x:Name="txt_filter" HorizontalAlignment="Left" Height="20" Margin="108,90,0,0" TextWrapping="Wrap" Text="Filter" VerticalAlignment="Top" Width="60"/>
  37.                 </Grid>
  38.             </TabItem>
  39.             <TabItem Header="AD add">
  40.                 <Grid Background="#FFE5E5E5"/>
  41.             </TabItem>
  42.             <TabItem Header="O365">
  43.                 <Grid Background="#FFE5E5E5"/>
  44.             </TabItem>
  45.             <TabItem Header="Status">
  46.                 <Grid Background="#FFE5E5E5"/>
  47.             </TabItem>
  48.             <TabItem Header="TODO">
  49.                 <Grid Background="#FFE5E5E5"/>
  50.             </TabItem>
  51.         </TabControl>
  52.         <Button x:Name="button1" Content="Quit" Height="20" Width="150" Margin="417,1,0,349"/>
  53.     </Grid>
  54. </Window>
  55. "@
  56.  
  57. $inputXML = $inputXML -replace 'mc:Ignorable="d"','' -replace "x:N",'N'  -replace '^<Win.*', '<Window'
  58. [void][System.Reflection.Assembly]::LoadWithPartialName('presentationframework')
  59. [xml]$xaml = $inputXML
  60. #Read XAML
  61. $reader=(New-Object System.Xml.XmlNodeReader $xaml)
  62. try{$Form=[Windows.Markup.XamlReader]::Load( $reader )}
  63. catch{Write-Host "Unable to load Windows.Markup.XamlReader. Double-check syntax and ensure .net is installed."}
  64.  
  65. #===========================================================================
  66. # Load XAML Objects In PowerShell
  67. #===========================================================================
  68.  
  69. $xaml.SelectNodes("//*[@Name]") | %{Set-Variable -Name "WPF$($_.Name)" -Value $Form.FindName($_.Name)}
  70.  
  71. Function Get-FormVariables{
  72. if ($global:ReadmeDisplay -ne $true){Write-host "If you need to reference this display again, run Get-FormVariables" -ForegroundColor Yellow;$global:ReadmeDisplay=$true}
  73. write-host "Found the following interactable elements from our form" -ForegroundColor Cyan
  74. get-variable WPF*
  75. }
  76.  
  77. Get-FormVariables
  78.  
  79. #===========================================================================
  80. # Actually make the objects work
  81. #===========================================================================
  82.  
  83. #Sample entry of how to add data to a field
  84.  
  85. #$vmpicklistView.items.Add([pscustomobject]@{'VMName'=($_).Name;Status=$_.Status;Other="Yes"})
  86.  
  87. #===========================================================================
  88. # Shows the form
  89. #===========================================================================
  90. write-host "To show the form, run the following" -ForegroundColor Cyan
  91. $Form.ShowDialog() | out-null
RAW Paste Data

Adblocker detected! Please consider disabling it...

We've detected AdBlock Plus or some other adblocking software preventing Pastebin.com from fully loading.

We don't have any obnoxious sound, or popup ads, we actively block these annoying types of ads!

Please add Pastebin.com to your ad blocker whitelist or disable your adblocking software.

×