2016-09-09 9 views
0

Я ищу, как я мог проверить, открывается ли форма winform с помощью Powershell, например this response for VB.net. Я работаю с двумя пробелами, и мне нужно запустить второй, когда моя форма будет открыта.Проверьте, открыта ли форма Winform/Powershell

Мое первое пространство для графического интерфейса пользователя. Когда создание интерфейса закончено, я открыл его

$CommonHashTable.MainForm.ShowDialog() 

И потом, я пытаюсь проверить, если эта форма открыта (snipet из VB.net) с PowerShell основного потока:

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

В чем конкретно заключается ваш вопрос/проблема? Вы пытаетесь «перевести» последний фрагмент «If Application.OpenForms(). OfType ...' to 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 

Это работает.

 Смежные вопросы

  • Нет связанных вопросов^_^