2015-01-29 3 views
0

Я столкнулся с проблемой, которая выглядит тривиальной для меня, но я не могу найти правильное решение после googling в течение часа.AutoIT получить дочернее окно из родительского окна

Я хочу заполнить всплывающее окно безопасности окна.

popup

Это часть теста селена, который может работать параллельно рядом с другими тестами. Итак, чтобы убедиться, что мой скрипт autoit заполняет правильное всплывающее окно (и не создает другой тест, который выполняется), я хочу идентифицировать это всплывающее окно как дочерний элемент родительского окна. Есть простой способ сделать это?

код я имел до сих пор:

$browserHandl = WinWait($parentTitle) 
WinActivate($browserHandl, "") 

$popUpHandl = WinWait("Windows Security") 

Так что мой страх, что WinWait будет возвращать одно из всех открытых всплывающих окон безопасности Windows в настоящее время открытых на компьютере.

So:
1. Есть ли способ получить дочерние окна родительского окна, когда я получил его ручку?
2. Является ли мой страх правильным, что у меня действительно будет состояние гонки с несколькими испытаниями, запущенными одновременно?

+0

EnumChildWindows api (_WinAPI_EnumChildWindows в autoit, файл справки имеет пример). Однако я сомневаюсь, что когда-либо было когда-либо более одного активного (или видимого) окна безопасности Windows. Возможно, вы можете посмотреть WinWaitActive. –

+0

На самом деле это довольно часто для открытия нескольких окон безопасности. Я рассмотрю этот апи. Большое спасибо. – MajorT

ответ

0

input box open

input box hidden

Я использовал прогресс, чтобы скрыть то, что мне нужно. добавить #include $ файл = GUICtrlCreateInput ("", 10, 5, 350, 25) Вам нужно 3 линии для Marquee Local $ iProgress = GUICtrlCreateProgress (30, 10, 270, 20, $ PBS_MARQUEE) GUICtrlSendMsg ($ iProgress, $ PBM_SETMARQUEE, 1, 50) и сделать его покрывают поле ввода

и 0, чтобы остановить и удалить Marquee GUICtrlSendMsg ($ iProgress, $ PBM_SETMARQUEE, 0, 50); Отправьте сообщение $ PBM_SETMARQUEE и wParam из 0, чтобы остановить прокрутку.