2016-09-09 8 views
0

this response for VB.net과 같이 powershell을 사용하여 winform 양식을 여는 방법을 확인할 수 있습니다. 저는 두 개의 작업 영역으로 작업하고 있으며, 두 번째 작업을 시작할 때 양식을 열어야합니다.양식이 열렸는지 확인하십시오 Winform/Powershell

내 첫 번째 runspace는 GUI 용입니다. UI를 생성이 완료되면, 나는 그것을

$CommonHashTable.MainForm.ShowDialog() 

을 열었다 그리고,이 양식을 PowerShell을 메인 스레드에서 (VB.net에서 snipet)를 열 경우 테스트하기 위해 노력하고있어 :

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

질문/문제가 정확히 무엇입니까? 마지막 스 니펫 인'Application.OpenForms(). OfType ... '이'PoSh '로 변환되는'투쟁 '과 싸우고 있습니까? – DAXaholic

+0

예, Powershell에서이 샘플로 변환하는 방법을 찾고 있습니다. – mrplume

답변

1

양식

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

Application.OpenForms에있을 열려 있으면 더 좋은 방법은 테스트() 응용 프로그램 클래스의 방법이 아닌 Form 클래스 될 것입니다. 그 방법을 사용할 수있을지라도 Application 클래스의 인스턴스가 있는지 확신 할 수 없습니다. 가 있었다면, 나는 다음과 비슷한 모습이 될 것입니다 상상 :

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

감사합니다 당신이 아주 많이, 나는이 기능을 만들었습니다 : 제대로 작동

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

.