Что нового

[Окна, Диалоги] Почему-то не переключается комбобокс

Gealut

Новичок
Сообщения
38
Репутация
0
Почему-то никак не получается переключить выбор в комбобоксах и нажать на кнопку:

d8a12f37f3b3bdb1927e7b7ad03f4436.jpg


Речь идет о двух комбобоксах и кнопке на панели Systran. В комбобоксах выбираются языки (исходный и требуемый), кнопка - переводит страницу.

Первый комбо:

Код:
>>>> Window <<<<
Title:	... - Windows Internet Explorer
Class:	IEFrame
...

>>>> Control <<<<
Class:	WindowsForms10.Window.8.app.0.378734a
Instance:	5
ClassnameNN:	WindowsForms10.Window.8.app.0.378734a5
Name:	mSourceCombo
Advanced (Class):	[NAME:mSourceCombo]
ID:	1115952
...

Второй:

Код:
>>>> Window <<<<
Title:	... - Windows Internet Explorer
Class:	IEFrame
...

>>>> Control <<<<
Class:	WindowsForms10.Window.8.app.0.378734a
Instance:	7
ClassnameNN:	WindowsForms10.Window.8.app.0.378734a7
Name:	mTargetCombo
Advanced (Class):	[NAME:mTargetCombo]
ID:	1246904
...

Кнопка:

Код:
>>>> Window <<<<
Title:	... - Windows Internet Explorer
Class:	IEFrame
...

>>>> Control <<<<
Class:	WindowsForms10.Window.8.app.0.378734a
Instance:	8
ClassnameNN:	WindowsForms10.Window.8.app.0.378734a8
Name:	mTranslateButton
Advanced (Class):	[NAME:mTranslateButton]
ID:	1246994
...

Только начал разбираться с управляющими элементами и уже сломал голову. Просмотрел всевозможные примеры, перепробовал разные варианты:

Код:
Opt("WinTitleMatchMode",2)
;	WinActivate("[CLASS:IEFrame]", "")
	ControlCommand("Internet Explorer", "", "[CLASS:WindowsForms10.Window.8.app.0.378734a; INSTANCE:5]", "SelectString", "Japanese")
;	ControlCommand("Internet Explorer","","mSourceCombo","SelectString","Japanese")
;	ControlCommand("[CLASS:IEFrame]","","[CLASS:WindowsForms10.Window.8.app.0.378734a]","SelectString","Japanese")
	ControlCommand("Internet Explorer","[NAME:mTargetCombo]","SelectString","English")
;	sleep(1000)
	ControlClick("Internet Explorer","","mTranslateButton")


Пробовал всевозможные комбинации. Не переключает и не нажимает на кнопку. И не могу понять какой аргумент для ControlCommand я неправильно указываю.

Кроме того, по дороге, возник еще один вопрос: как сделать активным окно, если известен его handle? При работе моего скрипта окон интернет эксплорера на экране может быть несколько, но мне известен номер того окна, которое я сам создал скриптом:

Код:
$oIE = _IECreate()

Но что-то я не нашел в возможностях задания Title в WinActivate чего-нибудь похожего на

Код:
"[HANDLE:" & $oIE & "]"

Помогите, пожалуйста, разобраться...
 

r35p3ct

Продвинутый
Сообщения
228
Репутация
60
Запускаешь AutoItMacroGenerator и будет счастье.
И точные комманды.

А вообще так наверно т.к. заголовок окна кривой:
Код:
ControlCommand("[Class:IEFrame]", "", "[CLASS:WindowsForms10.Window.8.app.0.378734a; INSTANCE:5]", "SelectString", "Japanese")
 
Автор
G

Gealut

Новичок
Сообщения
38
Репутация
0
r35p3ct сказал(а):
Код:
ControlCommand("[Class:IEFrame]", "", "[CLASS:WindowsForms10.Window.8.app.0.378734a; INSTANCE:5]", "SelectString", "Japanese")

Это не помогло, но помог AutoItMacroGenerator - надо было еще задать название панели в эксплорере:

Код:
ControlCommand("Internet Explorer","Панель переходов","WindowsForms10.Window.8.app.0.378734a5", "SelectString", "Japanese")


Спасибо. Вопрос решен.

Теперь буду "курить" как дождаться пока эксплорер не перезагрузит страницу с локали (http://127.0.0.1) - это уже с переводом.
 
Автор
G

Gealut

Новичок
Сообщения
38
Репутация
0
Поспешил отметить, что тема решена. К сожалению, такой способ срабатывает всего пару раз:

Код:
WinWait("Internet Explorer","Панель переходов")
ControlCommand("Internet Explorer","Панель переходов","WindowsForms10.Window.8.app.0.378734a5", "SelectString", "Japanese")


В скрипте перевод страниц осуществляется в цикле, после чего переведенная страница парсится. Так вот, переключение языка на японский происходит два раза, а потом языки перевода самопроизвольно устанавливаются на связку "английский-русский" (это вариант по умолчанию) и командой ControlCommand уже не переключаются. При этом нажатие на кнопку "Translate" работает нормально:

Код:
ControlClick("Internet Explorer","Панель переходов","WindowsForms10.Window.8.app.0.378734a8")
 
Верх