Powershell 2 中有没有办法创建非模态 Windows.Form / Dialog?表单应在函数内创建并保持打开状态,直到手动关闭。然而,函数的执行必须继续。即使任何脚本的执行完成并且用户返回到交互模式,也应该让表单保持打开状态。
我试过这样,但它甚至没有创建带有 start-job 的表单。直接调用 makeform ,但是按预期工作。
function makeform {
[void][reflection.assembly]::LoadWithPartialName("System.Windows.Forms")
[System.Windows.Forms.Application]::EnableVisualStyles();
$form = New-Object Windows.Forms.Form
$form.Text = 'Test Form'
$form.Add_Shown({$form.Activate()})
$form.ShowDialog()
}
function show {
start-job { makeform }
}
show # does show nothing :| (expected the form to appear)
start-job { makeform } -Name 'myjob' # expect the form to appear here - but it doesn't either :|
Write-Host "Cont..."
# simulate some long running task
[Threading.Thread]::Sleep(10000)
Wait-job myjob
Remove-job myjob
Write-Host "Done..."
Get-Job
我正在使用 .NET 4(通过配置)运行 Powershell 2,以防它很重要。非常感谢!