1
メッセージボックスまたは音声出力を呼び出すと、スクリプトが停止します。 スクリプトは、PowerShellの通常の動作とは何かを完了するのを待っています。PowerShell - 音声出力によるマルチスレッド
しかし、このスクリプトを音声出力で途切れることなくどのように実行することができますか?私は休憩せずにこのコードを実行したい
:
[System.Windows.Forms.MessageBox]::Show("stop")
$voice = new-object -com SAPI.SpVoice
$voice.Speak("Hello Stackoverflow!")
[System.Windows.Forms.MessageBox]::Show("done")
と同様に(動作しない):
[System.Windows.Forms.MessageBox]::Show("stop")
$job = start-job {
$voice = new-object -com SAPI.SpVoice
$voice.Speak($text)
}
[System.Windows.Forms.MessageBox]::Show("done")
か(また、動作していない)のような:
$test = "Hello"
[System.Windows.Forms.MessageBox]::Show("stop")
$backPS = [powershell]::create()
[void] $backPS.AddScript("$voice = new-object -com SAPI.SpVoice
$voice.Speak($test)")
[System.Windows.Forms.MessageBox]::Show("done")
ありがとうございました!私は間違いを発見しました $ job = start-job {(新しいオブジェクトのSAPI.spVoice).Speak($ args [0])} -arg $ text はうまくいきます! – LaPhi