1

Тема: AHK: Запрет на восстановление окна при отправке сигнала клика мыши

Передо мной стоит следующая задача: отправить сигналы кликов в окно браузера (во флешку), при свернутом окне. Следующий код работает:

;F11:: MouseGetPos x, y, id, cont
cont := "Chrome_RenderWidgetHostHWND1"
id := 0x90192
x:=814
y:=408

F12::
ControlClick, Chrome_RenderWidgetHostHWND1,BetOnMarkets,,,, x814 y408
 ;PostMessage, 0x201, 1, ((y<<16)^x), %cont%,  ahk_id %id%
 ;PostMessage, 0x202 , 0, ((y<<16)^x), %Cont%, ahk_id %id%
return

Закомментированные строки работают тоже (просто аналогия), однако после получения сигнала браузер гуглхром восстанавливает и  делает активным свое окно.
А если изменить код на клавишу Ф12 так:

WinHide, BetOnMarkets
ControlClick, Chrome_RenderWidgetHostHWND1,BetOnMarkets,,,, x814 y408
sleep, 3000
WinShow, BetOnMarkets

Тогда сигнал браузер не получает. Знает кто как обойти это?
P.S. А мазила вообще никак не хочет сигнал клика принимать

2

Re: AHK: Запрет на восстановление окна при отправке сигнала клика мыши

Первое что приходит на ум- отправлять WM_LBUTTONDBLCLK вместо последовательности DOWN/UP. А второе- поиграться со стилями, например добавить WS_EX_NOACTIVATE.

3

Re: AHK: Запрет на восстановление окна при отправке сигнала клика мыши

Александр_ пишет:

Первое что приходит на ум- отправлять WM_LBUTTONDBLCLK вместо последовательности DOWN/UP. А второе- поиграться со стилями, например добавить WS_EX_NOACTIVATE.

WS_EX_NOACTIVATE не помогает увы.
На счет первого, так работает же ControlClick

Google Chrome все равно делает свое окно активным. Однако сигналы клика мыши отправляются, в тои числе и в элементы Flash.
Mozilla FireFox сигналы отправляются нормально (окно не становится активным, не разворачивается свернутое). однако в элементы типа Flash отправлять сигналы клика не хочет (отправляю в элемент под курсором а именно в элемент с классом GeckoPluginWindow1). Остальные же сигналы, работающие, отправлялись в элементы с классом MozillaWindowClass1, MozillaWindowClass2 и т.д.

Непонятные однако штуковины. Буду рад если кто поможет (думаю многим пригодится), а пока ещё попробую покапать или напишу в девелоп отдел FireFox или на форум им по поводу этого плагина.

4

Re: AHK: Запрет на восстановление окна при отправке сигнала клика мыши

Resager пишет:

Непонятные однако штуковины. Буду рад если кто поможет (думаю многим пригодится), а пока ещё попробую покапать или напишу в девелоп отдел FireFox или на форум им по поводу этого плагина.

В FF точно всё в порядке, только что проверил. Сообщения нужно отправлять в GeckoFPSandboxChildWindow и не важно активно, неактивно или вообще скрыто это окно.

5

Re: AHK: Запрет на восстановление окна при отправке сигнала клика мыши

Александр_ пишет:
Resager пишет:

Непонятные однако штуковины. Буду рад если кто поможет (думаю многим пригодится), а пока ещё попробую покапать или напишу в девелоп отдел FireFox или на форум им по поводу этого плагина.

В FF точно всё в порядке, только что проверил. Сообщения нужно отправлять в GeckoFPSandboxChildWindow и не важно активно, неактивно или вообще скрыто это окно.

Странно, но у меня не принимает сигнал даже на элемент этого класса. Только в хроме работает. Может какая флешка особенная...
Может код покажете? Однако там же пара банальных строк...

F11:: MouseGetPos x, y
F12:: ControlClick, GeckoFPSandboxChildWindow ,title,,,,  x%x% y%y%

title - пытался и статичный ставить и получать у окна и пустым параметр оставлял. Один результат.
Хотел разместить ссылку. но боюсь что будет выглядеть как реклама

P.S. Благодарю за отзывчивость.

6

Re: AHK: Запрет на восстановление окна при отправке сигнала клика мыши

Давно понемногу ломаю свой гуманитарный мозг об Хром + Флэш. Эта сладкая парочка на столько же непредсказуема, насколько интересна для меня сейчас. В процессе копаний, помимо проблем с фокусом, обнаружилась масса всего непонятного: в обходе tab-ом, там где он доступен, появляются лишние, не активизируемые, визуально не определяемые и не имеющие контекстного меню инстанции; горячие клавиши отрубаются или ведут себя непредсказуемо; применяются настройки, не установленные пользователем (вместо, к примеру, открытия страницы в той же вкладке, создается новая) и т.п.
Вкуривание (в меру скромных...) доступных сведений и многочисленные эксперименты (аналогично ) по данной проблеме показали, что хром сам по себе гораздо более "сговорчив", а основная часть затруднений проистекает именно от флэша. При этом, по-видимому, многое зависит от конкретного флэш-контента. Если я правильно понял, взаимодействие с флэшем в браузере сродни взаимодействию с гостевой ОС на виртуальной машине - если в фокусе, поступающие сигналы интерпретируются так, как это настроено в ней. Соответственно, где-то работает обход tab-ом, где-то - нет, где-то не работает ControlClick или Click ввиду неверного определения координат, где-то цвета при визуальном различии расцениваются как одинаковые.
Посему чрезвычайно заинтересован в каком-нибудь универсальном решении и присоединяюсь к просьбе подсказать хоть что-нибудь.

BIG BROTHER IS WATCHING YOU.

7

Re: AHK: Запрет на восстановление окна при отправке сигнала клика мыши

Resager пишет:

Может код покажете? Однако там же пара банальных строк...

Для теста берём этот ролик с youtube, поскольку на их плеере удобно проверять клики.

DetectHiddenWindows, on ;если окно свёрнуто
;далее находим нужное окно, в этот момент вкладка с роликом должна быть активной
ControlGet, hWnd, hWnd,, GeckoFPSandboxChildWindow1, Best of Just For Laughs Gags - Best Police Pranks vol. 2 - YouTube - Mozilla Firefox
if(ErrorLevel) ;обработка ошибок
{
   MsgBox ControlGet error
   ExitApp
}
;далее вкладку можно перенести на задний план
ControlClick , x10 y10, ahk_id%hWnd%
ExitApp