我正在尝试编写一个首先显示消息框的脚本,然后如果用户没有单击“确定”到消息框,脚本需要在一定时间后继续。消息框代码本身可以正常工作,然后代码在Start-Job块中停止工作。
$job = Start-Job {
$message = [System.Windows.Forms.MessageBox]::Show("Message body." , "Message title." , 0)
if ($message -eq "OK" ) {Write-Host "User clicked OK."}
}
$timeout = Wait-Job $job -Timeout 30
Stop-Job $job
Receive-Job $job
Remove-Job $job
错误消息:
无法找到类型[System.Windows.Forms.MessageBox]:确保已加载包含此类型的程序集。 + CategoryInfo:InvalidOperation:(System.Windows.Forms.MessageBox:String)[],RuntimeException + FullyQualifiedErrorId:TypeNotFound
答案 0 :(得分:2)
在您的脚本块中,在开头插入Add-Type -AssemblyName System.Windows.Forms
。
作业在不同的PowerShell流程中运行,因此即使您已在控制台中导入WinForms程序集,该作品也不会在作业轮换的新PowerShell会话中导入。