![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Привет всем, прошу помощи, не могу разобраться с командой GetSubChild.
Пишу прогу для автоматизации игрового процесса в одной онлайн флеш-игрушке. Запускается она через браузер, но не получается отправить клик мыши через postmessage в веббраузер. За основу взял код из этой темы, там теже самые задачи решал человек: Код:
procedure TfrmMain.ClickToPage(const left: integer; const top: integer); var Pt: TPoint; var wnd: HWND; begin Application.ProcessMessages; Pt.x := WebBrowser1.Left + left; Pt.y := WebBrowser1.Top + top; Pt := ClientToScreen(Pt); //{Преобразуем Pt к "mickeys" (аболютным координатам курсора мышки} //Pt.x := Round(Pt.x * (65535 / Screen.Width)); // Pt.y := Round(Pt.y * (65535 / Screen.Height)); wnd:=frmMain.WebBrowser1.Handle; wnd:=frmMain.GetSubChild(wnd); wnd:=frmMain.GetSubChild(wnd); //ShowMessage(inttostr(wnd)); // выдаст в десятичной то что WinSpy видит в HEX 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; Код подрезал, у меня он в таком варианте: Код:
procedure TForm1.btn5Click(Sender: TObject); var Pt: TPoint; var wnd: HWND; begin wnd:=form1.wb1.Handle; wnd:=form1.GetSubChild(wnd); (ругается) wnd:=form1.GetSubChild(wnd); (ругается) Pt.x := wb1.Left + 75; Pt.y := wb1.Top + 442; //ShowMessage(inttostr(wnd)); // ?????? ? ?????????? ?? ??? WinSpy ????? ? HEX 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); end; Подскажите плз, где чего дописать/прописать нужно, чтобы заработали, без них почему-то клик не выполняется( . |