0

我正在尝试编写一个脚本,该脚本将首先显示一个消息框,然后如果用户没有单击消息框的“确定”,则该脚本需要在一段时间后继续执行。消息框代码本身可以正常工作,然后代码一旦在 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

4

1 回答 1

2

在您的脚本块中插入Add-Type -AssemblyName System.Windows.Forms开头。

该作业在不同的 PowerShell 进程中运行,因此即使您在控制台中导入了 WinForms 程序集,该程序集也不会在作业启动的新 PowerShell 会话中导入。

于 2013-10-29T21:13:42.560 回答