2016-09-09 9 views
0

winformフォームがPowershellで開かれているかどうかを確認する方法を探しています(this response for VB.netなど)。私は2つのランスペースで作業しています。フォームを開くと、2番目のランスペースを開始する必要があります。フォームが開かれていることを確認するWinform/Powershell

私の最初のランスペースは、GUI用です。 UIの作成が完了すると、私はそれを

$CommonHashTable.MainForm.ShowDialog() 

を開いた。そして、私はPowerShellのメインスレッドから(VB.netからsnipet)このフォームが開かれたかどうかをテストしようとしている:

If Application.OpenForms().OfType(Of $CommonHashTable.MainForm).Any Then 
... startsecondrunspace 
+1

あなたの質問/問題は何ですか?最後のスニペットを '翻訳する 'と闘っていますか?If Application.OpenForms()。OfType ... PoShに? – DAXaholic

+0

はい、私はPowershellでこのサンプルを変換する方法を探しています – mrplume

答えて

1

フォームが開いているかどうかをテストするためのより良い方法は

if ($CommonHashTable.MainForm.IsHandleCreated) { 
    startsecondrunspace 
} 

Application.OpenForms()アプリケーションクラスのメソッドではなく、フォームクラスであろうとあるかもしれません。そのメソッドを使用できるようにするためにApplicationクラスのインスタンスがあるかどうかは不明です。あった場合、私はそれは次のようになります想像:

If ($ApplicationObject.OpenForms().OfType(Of $CommonHashTable.MainForm).Any) { 
    startsecondrunspace 
} 
0

おかげであなたが非常に多く、私はこの関数を作成している:それは働いて

do { 
    RecordToLog -Message "Waiting..." 
    start-sleep -m 100 
} until ($CommonHashTable.MainForm.IsHandleCreated) 
startsecondrunspace 

関連する問題