Что нового

Как поймать окно если имена окон одинаковые?

ol1o

Новичок
Сообщения
26
Репутация
0
Привет. Первое окно называется TDA Console и на нем идут проценты передачи файла. На втором окне написано то что конвертация закончина и окно тоже называется TDA console но нужно нажать "OK"
как это сделать? пробовал winwaitactive не получилось. какие есть мысли по этому поводу.?
Тоесть нужно подождать пока пройдут проценты и появится новое окно. ПРодолжительность отображения первого окна всегда разная.
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Код:
$hWndPrev = WinGetHandle('Untitled - Notepad')
If $hWndPrev = "" Then
    Exit
EndIf
Do
    Sleep(100)
    $hWndNew = WinGetHandle('Untitled - Notepad')
Until ($hWndNew <> '') And ($hWndNew <> $hWndPrev)

; Здесь можно жать на кнопку
 
Автор
O

ol1o

Новичок
Сообщения
26
Репутация
0
данные первого окна:
>>>> Window <<<<
Title: KX-TDA Maintenance Console
Class: QWidget
Position: 399, 375
Size: 483, 243
Style: 0x16CC0000
ExStyle: 0x00000504
Handle: 0x000D056E

>>>> Control <<<<
Class: QWidget
Instance: 6
ClassnameNN: QWidget6
Advanced (Class): [CLASS:QWidget; INSTANCE:6]
ID:
Text: lblErrMsg
Position: 71, 19
Size: 385, 135
ControlClick Coords: 161, 80
Style: 0x56000000
ExStyle: 0x00000004
Handle: 0x00040626

>>>> Mouse <<<<
Position: 635, 497
Cursor ID: 2
Color: 0:rofl:6D3CE


данные второго окна:

>>>> Window <<<<
Title: KX-TDA Maintenance Console
Class: QWidget
Position: 399, 375
Size: 483, 243
Style: 0x16CC0000
ExStyle: 0x00000504
Handle: 0x000D056E

>>>> Control <<<<
Class: QWidget
Instance: 3
ClassnameNN: QWidget3
Advanced (Class): [CLASS:QWidget; INSTANCE:3]
ID:
Text: btnCancel
Position: 176, 179
Size: 82, 26
ControlClick Coords: 31, 12
Style: 0x56000000
ExStyle: 0x00000004
Handle: 0x0003062C

>>>> Mouse <<<<
Position: 610, 589
Cursor ID: 2
Color: 0x000000
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Выложи скрины обеих окон.
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Ориентироваться можно по тексту в окне:

Код:
$hWnd1 = WinGetHandle("[CLASS:QWidget]", "lblErrMsg")
$hWnd2 = WinGetHandle("[CLASS:QWidget]", "btnCancel")
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Судя по инфо там одно и тоже окно.

Handle: 0x00040626
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Yashied [?]
Судя по инфо там одно и тоже окно
Мне кажется ol1o просто скопировал во второй блок данные из певрого окна, т.к данные по элементам не совпадают. Хотя это также может означать что он просто навёл курсор на другой элемент того же окна :smile: - Ждём ответ автора.
 
Автор
O

ol1o

Новичок
Сообщения
26
Репутация
0
фото двух окон

какие идеи?
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
ol1o [?]
Я уже выложил свои идеи, вот ещё так можно:

Код:
WinWait("[CLASS:QWidget;TITLE:KX-TDA Maintenance Console]", "File transfer completed.")
WinClose("[CLASS:QWidget;TITLE:KX-TDA Maintenance Console]", "File transfer completed.")
 
Автор
O

ol1o

Новичок
Сообщения
26
Репутация
0
Верх