1

Тема: AHK: Посылка комманд в окно броузера Internet Explorer

Здравствуйте,

Есть IP камера, которая управляется посредством Internet Explorer + ActiveX. Все команды камере посылаются нажатием мыши по соответствующему элементу управления в окне браузера, причем никаких горячих клавиш не предусмотрено. Существует необходимость реорганизовать управление IP камерой, чтобы она управлялась при помощи горячих клавиш.
Может кто посоветует, как послать серию команд элементу управления, расположенному в окне браузера, не используя управление мышью, например, стрелками клавиатуры управлять движением камеры при полноэкранном режиме, когда все элементы управления скрыты. Заранее благодарен за помощь.

2

Re: AHK: Посылка комманд в окно броузера Internet Explorer

Если элементы управления стандартные, можно использовать команду ControlSend, назначив щелчок мыши на нужную "горячую клавишу".

3

Re: AHK: Посылка комманд в окно броузера Internet Explorer

Насколько я понимаю, элементы управления как раз не стандартные, ибо Window Spy элементов управления не определяет как отдельных объектов. Я полагал решить проблему при помощи PostMessage и SendMessage,  однако не сумел совладать с Winspector Spy - видать, опыта маловато, вот и постучался на форум за помощью. Может, есть у кого опыт работы с ActiveX? Или такие задачи решаются другими средствами?

4

Re: AHK: Посылка комманд в окно броузера Internet Explorer

Сделайте снимок экрана - посмотреть что из себя представляет управление IP-камерой.

5

Re: AHK: Посылка комманд в окно броузера Internet Explorer

Вот снимок экрана:

http://imghost.in/di-DHS6.png

Все поле страницы, включая кнопки управления камерой, за исключением окна с изображением Window Spy определяется как ClassNN: Internet Explorer_Server1.  В общих чертах суть переделки управления такова: управление камеры стрелками клавиатуры, "+ -" - для приближения и отдаления и т.п.
Важно то, что в крайнем случае одновременно надо послать количество команд, эквивалентное "одновременному" клику мышью по 5 разным элементам управления. Пример: одновременное нажатие стрелок "вправо", "вверх", "приблизить", "Увеличить скорость"

6

Re: AHK: Посылка комманд в окно броузера Internet Explorer

Вот пример.

1:: ControlClick, x190 y70, IP CAMERA - Microsoft Internet Explorer, ; WinText, WhichButton, ClickCount, Options, ExcludeTitle, ExcludeText]

При нажатии на клавиашу 1 посылается щелчок мыши по координатам кнопки "Обновить". Таким же способом можно "нажимать" на кнопки управления камерой.

7

Re: AHK: Посылка комманд в окно броузера Internet Explorer

А существует ли возможность послать окну не "нажатие" а значение некой переменной, например при нажатии и удержании клавиши ctrl поменять скорость камеры с 5 на 10, а при при отпускании - обратно на 5?

8

Re: AHK: Посылка комманд в окно броузера Internet Explorer

Судя по картинке, нужно при удержании Ctrl 5 раз нажать на кнопку "+", а при отпускании - 5 раз нажать кнопку "-". Или щёлкнуть в определённом месте шкалы.

9

Re: AHK: Посылка комманд в окно броузера Internet Explorer

Спасибо за помощь ypppu, вопрос от части решен. ControlClick команды отрабатывает успешно, причем даже при полноэкранном режиме, когда кнопки управления скрыты. Я опасался, что при полном экране дело будет сложнее. Вот фрагмент кода AHK:

Right:: 
{
ControlClick, x200 y390, IP CAMERA - Windows Internet Explorer, , , , D
KeyWait, Right
ControlClick, x200 y390, IP CAMERA - Windows Internet Explorer, , , , U
Return
}

Однако остался открытым вопрос об обмене данными между переменными AHK и Internet Explorer. По некоторым соображениям я бы предпочел прямой посыл значение переменной в окно Internet Explorer, вместо посылки кликов по контролу. Также актуально каким-то образом извлечь значение некоторых переменных из браузера для дальнейшей обработки. Может, есть у кого идеи? Буду благодарен за помощь.

10

Re: AHK: Посылка комманд в окно броузера Internet Explorer

Я не разбираюсь в web-программировании, но что-то мне подсказывает, что в этой теме может быть полезная информация.

11

Re: AHK: Посылка комманд в окно броузера Internet Explorer

equipment66, выложите html-код той страницы. Возможно, кто-то даст полезный совет.