2017-01-19 9 views
0

スクリプトはPowershell V2.0 ISEで動作しますが、Powershellスクリプトでは実行されません。どうしてこれなの?ここで変数をnullにすることはできないと私は理解していますが、XAMLからこれらの変数を読み、ボタンのクリックは機能します。私は次のエラーを取得する:変数としてXAML要素が見つかりません - Powershell 2.0

You cannot call a method on a null-valued expression, 
At C:\Program Files (x86)\Novertz\Main Script\Novertz.ps1 char:7 
+ $FEL_CP6K01_button.add.click <<<< << 
    +Category Info   :InvalidOperation 

私は次のようにXAMLをお読みください。

[CmdletBinding()] 

Param(

[Parameter(Mandatory=$True,Position=1)] 

[string]$XamlPath 

) 



[xml]$Global:xmlWPF = Get-Content -Path $XamlPath 



#Add WPF and Windows Forms assemblies 

try{ 

Add-Type -AssemblyName   PresentationCore,PresentationFramework,WindowsBase,system.windows.forms 

} catch { 

Throw "Failed to load Windows Presentation Framework assemblies." 

} 



#Create the XAML reader using a new XML node reader 

$Global:xamGUI = [Windows.Markup.XamlReader]::Load((new-object  System.Xml.XmlNodeReader $xmlWPF)) 



#Create hooks to each named object in the XAML 

$xmlWPF.SelectNodes("//*[@Name]") | %{ 

Set-Variable -Name ($_.Name) -Value $xamGUI.FindName($_.Name) -Scope Global 

} 

そして、PowerShellスクリプト:

#Required to load the XAML form and create the PowerShell Variables 

cd "C:\Users\Leeds TX 12\Desktop\Novertz\GUI" 

./LoadDialog.ps1 -XamlPath 'C:\Users\Leeds TX  12\Desktop\Novertz\GUI\myform.xaml' 

$FEL_CP6K01_button.add_Click({#powershell script#}) 

$xamGUI.ShowDialog() | out-null 

XAML:

<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presenta‌​tion" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="No-Vertz" Height="1080" Width="1920"> 
<Grid Margin="0,0,-233,-101"> <Grid.Effect> <DropShadowEffect/>  </Grid.Effect> 

<Button Name="FEL_CP6K01_button" Content="FEL_CP6K_CH01" HorizontalAlignment="Left" Margin="23,69,0,0" VerticalAlignment="Top" Width="99" Height="59"/> 

答えて

0

ランシングルスレッドマンションのパワーシェルode -STA

関連する問題