Что нового

Как нажать flash (флеш) кнопку?

uninstall

Осваивающий
Сообщения
52
Репутация
31
При написании одной из программ столкнулся с проблемой - при загрузке странички необходимо ввести текст и нажать на flash кнопку.
Текст в поле мне ввести удалось, а вот нажать кнопку не могу. Варианты с применение щелчка мышью не предлагать, так как программа должна работать в фоновом режиме.
Во вложенном файле html страничка, и flash файл, необходимый для ее работы.
Зараннее всем спасибо!
 

El Panda

Продвинутый
Сообщения
101
Репутация
59
Подделай HTTP запрос, других вариантов не вижу.
 
Автор
U

uninstall

Осваивающий
Сообщения
52
Репутация
31
Это не так просто так как flash генерит дополнительный html код, принципы генерации мне не ясны
 

vovsla

Осваивающий
Сообщения
607
Репутация
36
да просто маусклик относительно координат небходимого окна, или это не выход?
 
Автор
U

uninstall

Осваивающий
Сообщения
52
Репутация
31
Vovsla сказал(а):
да просто маусклик относительно координат небходимого окна, или это не выход?
Не выход - "Варианты с применение щелчка мышью не предлагать, так как программа должна работать в фоновом режиме." Смотри 1-й пост в теме
 

vovsla

Осваивающий
Сообщения
607
Репутация
36
если кнопка одна, то можно выслать Enter
 
Автор
U

uninstall

Осваивающий
Сообщения
52
Репутация
31
Vovsla сказал(а):
если кнопка одна, то можно выслать Enter
Пробовал, для флеш это не работает, скачай прикрепленный файл из первого поста и сам попробуй
 

vovsla

Осваивающий
Сообщения
607
Репутация
36
странно, если после ввода нажать таб (когда фокус в поле ввода), потом Enter, то работает, будет времечко попробую на автоите
 
Автор
U

uninstall

Осваивающий
Сообщения
52
Репутация
31
Vovsla сказал(а):
странно, если после ввода нажать таб (когда фокус в поле ввода), потом Enter, то работает, будет времечко попробую на автоите
А ты попробуй сначала фокус полю дать... У меня не получилось
 

vovsla

Осваивающий
Сообщения
607
Репутация
36
я хз, у меня работает
ControlFocus("Mozilla Firefox", "", "MozillaWindowClass6")
ControlSend("Mozilla Firefox", "", "MozillaWindowClass6", "{TAB}")
ControlSend("Mozilla Firefox", "", "MozillaWindowClass6", "123")
ControlSend("Mozilla Firefox", "", "MozillaWindowClass6", "{TAB}")
ControlSend("Mozilla Firefox", "", "MozillaWindowClass6", "{Enter}")
ток у тебя ессесно название окна и controlID другой будет
 
Автор
U

uninstall

Осваивающий
Сообщения
52
Репутация
31
а если на странице больше полей, и если я сам нажму в момент выполнения программы {TAB}, или {ENTER} для своих целей, или если окно будет невидимое? как в этом случае поведет себя твой код?
 

vovsla

Осваивающий
Сообщения
607
Репутация
36
если окно будет невидимое, то всё ок
чтобы самому не нажать {TAB}, или {ENTER} можно на это время заблокировать ввод, потом разблокировать
BlockInput(1)
BlockInput(0)
или залочить на время выполнения всё окно
ControlDisable ( "title", "text", controlID)

скрипт делается не под конкретную страницу?
 
Автор
U

uninstall

Осваивающий
Сообщения
52
Репутация
31
Спасибо попробую, скрипт делается под конкретную сраницу, но с динамически изменяемым содержимым
 

vovsla

Осваивающий
Сообщения
607
Репутация
36
вообще всё высылается конкретному элементу, если он без изменений, то скорее всего будет работать, у меня при множестве табов фокус прыгает между полем ввода и кнопкой
 
Автор
U

uninstall

Осваивающий
Сообщения
52
Репутация
31
to Vovsla,
Твой вариант работает только для варианта с активным видимым окном, для меня это не выход,
вот пример заполнения поля вне зависимости от активности и видимости окна:

$oQuery = _IEGetObjByName($oIE, "workcode4") ; где $oIE - экземпляр объекта IE, в котором открыта страница, "workcode4" - ID элемента на странице
$oQuery.SetVariable("/:itext.text", "123"); установка значения текстового поля

Не смог организовать только нажатие на кнопку, может подскажешь как?
PS itext.text - имя поля и название свойства получил путем декомпиляции flash, (у кнопки имя - but)
 

vovsla

Осваивающий
Сообщения
607
Репутация
36
странно, что у тебя не работает, у меня работает когда я просто скрваю онкно
WinSetState("Mozilla Firefox", "", @SW_HIDE)
ControlDisable("Mozilla Firefox", "", "MozillaWindowClass6")
ControlFocus("Mozilla Firefox", "", "MozillaWindowClass6")
ControlSend("Mozilla Firefox", "", "MozillaWindowClass6", "{TAB}")
ControlSend("Mozilla Firefox", "", "MozillaWindowClass6", "123")
ControlSend("Mozilla Firefox", "", "MozillaWindowClass6", "{TAB}")
ControlSend("Mozilla Firefox", "", "MozillaWindowClass6", "{Enter}")
WinSetState("Mozilla Firefox", "", @SW_SHOW)

или скрываю и делаю активным другое
WinSetState("Mozilla Firefox", "", @SW_HIDE)
WinActivate("Total")
WinWaitActive("Total")
ControlDisable("Mozilla Firefox", "", "MozillaWindowClass6")
ControlFocus("Mozilla Firefox", "", "MozillaWindowClass6")
ControlSend("Mozilla Firefox", "", "MozillaWindowClass6", "{TAB}")
ControlSend("Mozilla Firefox", "", "MozillaWindowClass6", "123")
ControlSend("Mozilla Firefox", "", "MozillaWindowClass6", "{TAB}")
ControlSend("Mozilla Firefox", "", "MozillaWindowClass6", "{Enter}")
WinSetState("Mozilla Firefox", "", @SW_SHOW)

в любом случае в окне ввода появляется вводимый текст и последствия нажатия на кнопку, у меня это выражается в сообщении о безопасности адобе флеш плеера, может дело в чём-то другом...
 
Автор
U

uninstall

Осваивающий
Сообщения
52
Репутация
31
Я в своей программе работаю с IE, так как в AutoIT на него есть встроенные функции разбора страницы, а на Firefox таких функций нет, попробуй выполнить те же действия для IE
 

vovsla

Осваивающий
Сообщения
607
Репутация
36
в IE 8.0.6001.18702 поле ввода и кнопка отображаются единым серым фоном, какая версия IE у тебя?
 
Автор
U

uninstall

Осваивающий
Сообщения
52
Репутация
31
Есть такой бок, к сожалению никак не решается, в IE flash активна только если станица загружается on-line, так что продемонстрировать никак не могу, но факт остается фактом ((, поэтому я и предложил другой вариант решения смотри мой пост № 14
 

vovsla

Осваивающий
Сообщения
607
Репутация
36
пост № 14 видел, но не глядя вряд ли смогу что-либо предложить, может у тебя есть на примете сайты с аналогичной схемой...


Добавлено:
Сообщение автоматически объединено:

во, ток что наткнулся http://autoit-script.ru/index.php/topic,40.0.html
может полностью на FF перейдёшь :smile:
 
Верх