Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> TWebBrowser (EmbeddedWb) эмуляция мыши 
:(
    Опции темы
RazoRIII
Дата 21.7.2011, 17:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 21.7.2011

Репутация: нет
Всего: нет



Работаю с EmbeddedWB.
Нужно программно сэмулировать действия мыши: "повозить" ею по элементу (down - move - up). При этом помех никаких быть не должно - чистая эмуляция.
Работа идет с flash объектом, получить его как wb.ElementByID['...']  в IHtmlElement могу.
mouse_event не подходит - нужен фокус на окно.
Код

 sendmessage(wb.Hwnd, WM_LBUTTONDOWN, MK_LBUTTON, X + Y shl 16);
 sendmessage(wb.Hwnd, WM_LBUTTONUP, MK_LBUTTON, X + Y shl 16);

работает непонятно как, клика по факту нет. - событие wb.OnClick не вызывается.

Код

var  
  TI:TInput;   
  MI: TMouseInput;  
-----
  MI.dx := X;   
  MI.dy := Y;   
  MI.mouseData := 0;   
  MI.dwFlags := MOUSEEVENTF_LEFTDOWN ;   
  MI.time := 10;   
  TI.mi := MI;   
  TI.Itype := INPUT_MOUSE;   
  SendInput(1, TI, SizeOf(TInput));   
  MI.dwFlags:=MOUSEEVENTF_LEFTUP;   
  TI.mi := MI;   
  SendInput(1, TI, SizeOf(TInput)); 

с ПКМ работает, с ЛКМ - гаснут мониторы (непонятная фигня). Пробовал сюда же прикрутить move - тоже самое. Если убрать MOUSEEVENTF_LEFTUP - монитор не гаснет, но толку естесно нет.

Каким образом (любым, не требующим фокуса на окно) реализовать алгоритм?
PM MAIL   Вверх
CTPAX
Дата 3.4.2013, 17:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 27.12.2008
Где: Слоним

Репутация: нет
Всего: нет



может и поздновато, но в аналогичной ситуации использую внешнюю dll от AutoIt autoitx3.dll. там есть функции для работы с мышью
PM MAIL ICQ   Вверх
lollollollol
Дата 3.4.2013, 21:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 287
Регистрация: 12.3.2013

Репутация: нет
Всего: нет



Код

sendmessage(wb.Hwnd, WM_LBUTTONDOWN, MK_LBUTTON, X + Y shl 16);
sleep(150); //Sleep
sendmessage(wb.Hwnd, WM_LBUTTONUP, MK_LBUTTON, X + Y shl 16);
sleep(150); //Sleep

Вот так будет клик, иначе нет 

Это сообщение отредактировал(а) lollollollol - 3.4.2013, 21:05
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.0400 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.