Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.09.2015, 21:06   #1
cashmail
Форумчанин
 
Регистрация: 23.06.2011
Сообщений: 201
По умолчанию Управлять компонентом на WinApi

Здравствуйте, такая задача. Есть Chromium (движок браузера), в нем надо без использования курсора, т.е. даже в свернутом виде, сообщать, что курсор перемещается и делает клики, с помощью MS Spy++ посмотрел winapi messages

На основе этих сообщений написал код:
Код:
SendMessage(Chrome_RenderWidgetHostHWND,WM_NCHITTEST,0,MakeLParam(x,y));
SendMessage(Chrome_RenderWidgetHostHWND,WM_NCHITTEST,0,MakeLParam(x,y));
SendMessage(Chrome_RenderWidgetHostHWND,WM_NCHITTEST,0,MakeLParam(x,y));
SendMessage(Chrome_RenderWidgetHostHWND,WM_SETCURSOR,Chrome_RenderWidgetHostHWND, MAKELPARAM( HTCLIENT, WM_MOUSEMOVE ));
PostMessage(Chrome_RenderWidgetHostHWND,WM_MOUSEMOVE,0,MakeLParam(x,y));
SendMessage(Chrome_RenderWidgetHostHWND,WM_NCHITTEST,0,MakeLParam(x,y));
В итоге получаю:

Причем в Chromium'e срабатывает наведение (там HTML страничка, которая при наведении меняет цвет), но увы тут же пропадает! Но если навести курсор на Chromium и выполнить вышеуказанный код, то также срабатывает и не пропадает. Т.е. получается теряется фокус или что? Помогите пожалуйста Мне кажется дело в WM_MOUSELEAVE, но возможно ошибаюсь, буду благодарен за ответы
cashmail вне форума Ответить с цитированием
Старый 16.09.2015, 21:10   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Обычно проще с помощью JS генерировать нужные события.

Ну или если можете взять не Дельфи, а например C#, Java или Python, то для них есть Selenium и там мышь легко автоматизировать с помощью Actions.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 16.09.2015, 21:12   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

ИМХО в свернутом окне кликать не получится.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.09.2015, 21:14   #4
cashmail
Форумчанин
 
Регистрация: 23.06.2011
Сообщений: 201
По умолчанию

JS не подходит, т.к. надо именно имитировать мышь, чтобы сработали все события. Т.к. сайты будут разные, JS не подходит. Также и другие языки тоже Ради одного проекта изучать какой-то новый язык...
Stilet, но ведь кликать будет не курсор, а просто будет имитироваться событие в компоненте.
cashmail вне форума Ответить с цитированием
Старый 16.09.2015, 21:26   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну не знаю, ИМХО невидимое окно такого не приемлет.
Допускаю конечно что ошибаюсь, но все же. Это нужно проверить на каком-нить простеньком приложении. Свернуть и попробовать в него курсором покликать.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.09.2015, 21:33   #6
cashmail
Форумчанин
 
Регистрация: 23.06.2011
Сообщений: 201
По умолчанию

Stilet, ну приложение в свернутом виде также работает, просто не отрисовывается ИМХО, а в остальном также работает )
cashmail вне форума Ответить с цитированием
Старый 17.09.2015, 14:37   #7
cashmail
Форумчанин
 
Регистрация: 23.06.2011
Сообщений: 201
По умолчанию

Может есть другие способы имитировать движение курсора в Chromium? Без использования JS. Может есть какие-то стандартные функции?
cashmail вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
spy++ управлять другими программами? neks Фриланс 3 25.03.2014 04:08
Управлять внешним устройством. PunkSerg Помощь студентам 25 03.07.2013 09:18
Реально ли управлять принтером? pozidok Win Api 7 15.03.2013 11:16
Различие кода mfc и WinApi(mfc ручками набили, а WinApi автоматически с генерировался!! нужно явное отличие, не могу найти) Артём1991 Помощь студентам 0 25.03.2012 17:13
Как управлять usb-мышкой Dimaz Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 11 30.03.2011 21:58