2014-05-22 47 views
0

在Windows 7註銷後我打電話給我的wpf應用程序。我寫了一個powershell腳本來調用我的wpf應用程序,並等待wpf應用程序關閉。 代碼如何在Windows 7註銷後在PowerShell中調用WPF應用程序

$p = New-Object System.Diagnostics.Process 
$pinfo = New-Object System.Diagnostics.ProcessStartInfo("D:\PowerShell\PsWpf.exe"); 
$p.StartInfo = $pinfo; 
$p.Start(); 
$p.WaitForExit(); 

當我嘗試使用這個腳本作爲註銷腳本,在輸入gpedit.msc配置了Windows環境下的 - >腳本 - >註銷,然後我的計算機上獲取凍結,這意味着沒有反應。

如果我像往常一樣執行腳本,這意味着右鍵單擊PowerShell文件,然後「運行然後與Powershell」,一切運行良好。

如何在Windows註銷後在powershell中調用我的wpf應用程序?

我知道這是可能在PowerShell中使用WPF,像

Add-Type -AssemblyName PresentationFramework 
Add-Type -AssemblyName PresentationCore 
Add-Type -AssemblyName WindowsBase 
[xml]$xaml = 
@" 
<Window 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="PowerShell WPF" Height="244" Width="525" FontFamily="Calibri" FontWeight="Bold" ResizeMode="NoResize"> 
    <Grid Background="#58000000"> 
     <Label Content="Designed and Developed by Free Lancer" Height="28" HorizontalAlignment="Left" Margin="288,165,0,0" Name="label1" VerticalAlignment="Top" /> 
    </Grid> 
</Window> 

"@ 

$reader=(New-Object System.Xml.XmlNodeReader $xaml) 
$Window=[Windows.Markup.XamlReader]::Load($reader) 


$Window.ShowDialog() | Out-Null 

,並把它作爲註銷腳本正常工作。我的問題是,我無法在.NET中使用PowerShell腳本。

回答

0

從我從你的問題拿走了目前的形式(有點混亂,說實話),我想你想:

  1. 在註銷事件
  2. 都會發出一個過程所以使用組策略
  3. 暫停直至註銷腳本操作和流程完整

我抓我的頭,爲什麼你使用:

使用 Start-Process-Wait PARAM將暫停腳本執行,直到進程「PsWpf.exe」結束

Start-Process -FilePath "D:\Powershell\PsWpf.exe" -Wait 

$p = New-Object System.Diagnostics.Process 
$pinfo = New-Object System.Diagnostics.ProcessStartInfo("D:\PowerShell\PsWpf.exe"); 
$p.StartInfo = $pinfo; 
$p.Start(); 
$p.WaitForExit(); 

我想知道如果這可能會更好。此外,您可能不知道,但GPO使用CMD shell而不是Powershell執行。所以,從CMD環境中執行PowerShell命令你需要封裝他們是這樣的:

powershell.exe -Command "& {Start-Process -FilePath "D:\Powershell\PsWpf.exe" -Wait} 

如果您的計算機仍掛在關機/註銷是因爲該程序PsWpf.exe沒有退出。

+0

我嘗試啓動過程-FilePath「D:\ Powershell \ PsWpf.exe」-Wait -WindowStyle正常,wpf窗口顯示,但它不會等到我完成程序。 wpf窗口只出現一秒鐘,並在電腦關機後出現。但是我想要的是,電腦不會關機,直到我完成wpf程序。 –

相關問題