![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Не получается сэмулировать клик мыши с помощью postmessage в twebbrowser
![]() Использую следующий код: Код:
procedure TForm1.btn52Click(Sender: TObject); var Pt: TPoint; wnd: HWND; begin Application.ProcessMessages; Pt.x := 92; Pt.y := 438; wnd:=form1.Wb1.Handle; wnd:=GetSubChild(wnd); wnd:=GetSubChild(wnd); //edt18.text:=IntToStr(wnd); postmessage(wnd,WM_Move,0,(Pt.x shl 16)+ Pt.y); postmessage(wnd,WM_LBUTTONDOWN, MK_LBUTTON,(Pt.x shl 16)+ Pt.y); postmessage(wnd,WM_LBUTTONUP,MK_LBUTTON,(Pt.x shl 16)+ Pt.y); Application.ProcessMessages; end; Планируется передать щелчёк мыши по заданным координатам в браузерной флешь-игрушке. Но ничего не происходит. Пробовал использовать этот же код с небольшим изменением в команде postmessage, чтобы сэмулировать нажатие клавишь - получилось, но вот именно с эмуляцией действий мыши проблема ![]() Подскажите плз, в чём может быть проблема. |
#2
|
|||
|
|||
![]() Немного продвинулся в своей разработке.
Код:
procedure TForm1.btn52Click(Sender: TObject); var Pt: TPoint; wnd: HWND; begin Application.ProcessMessages; Pt.x := 92; Pt.y := 438; wnd:=form1.Wb1.Handle; wnd:=GetSubChild(wnd); wnd:=GetSubChild(wnd); //edt18.text:=IntToStr(wnd); postmessage(wnd,WM_Move,0,(Pt.x shl 16)+ Pt.y); postmessage(wnd,WM_LBUTTONDOWN, 0,(Pt.x shl 16)+ Pt.y); postmessage(wnd,WM_LBUTTONUP, 0,(Pt.x shl 16)+ Pt.y); Application.ProcessMessages; end; С этим кодом проверил - клик в нужное место в веббраузер передаёт. Но во флешь игру передавать клик всё равно отказывается (пробовал найти хендл именно флешь игры, нашёл, но всё равно в неё клик не передаёт). Посему вопрос к опытным программерам - может ли игра иметь какую-либо защиту от кликов через postmessage? Или всё же получается я ещё что-то не так делаю.. |