2017-01-27 94 views
0

私は自分のネットワーク上のデバイスでPowershellスクリプトを実行できるアプリケーションを使用しており、MessageBoxを使用してユーザーに確認する必要があります。PowershellのMessageBoxが前面に表示されない

私のスクリプトは、MessageBoxを正常に作成しますが、私の問題は常にアプリケーションの背後に表示されることです。私は、プロパティTopmost = trueで新しいフォームを作成し、それを最初のパラメータとして渡すことを提案したソリューションをオンラインで試しましたが、動作していないようです。私が間違っていることがすぐ明らかなことはありますか?

Add-Type -AssemblyName PresentationCore,PresentationFramework 

$top = new-Object System.Windows.Forms.Form -property @{Topmost=$true} 
$Result = [System.Windows.Forms.MessageBox]::Show($top, $MessageBody,$MessageTitle,$ButtonType,$MessageIcon) 

答えて

1

スポーンされたウィンドウには親が必要です。もし彼らがそうしなければ、彼らはあなたが見つけたように他の窓の背後に落ちるだろう。

次は、それ自体が、PowerShellに関連していないです...しかし、それはあなたが行きたい場所を得るために行う/知っておくべきことだ...

Why isn't MessageBox TopMost?

おそらく

In Powershell how do I bring a messagebox to the foreground, and change focus to a button in the message box

0

あなたは[System.Windows.Forms.Form]オブジェクトを使用する必要はありません、あなたは最初のパラメータとして$this変数を使用して1行でそれを行うことができます。

$Result = [System.Windows.Forms.MessageBox]::Show(**$this**, $top, 
    $MessageBody,$MessageTitle,$ButtonType,$MessageIcon) 
関連する問題