Привет всем, прошу помощи, не могу разобраться с командой 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;
Но ругается на гетсабчильды((. Ошибки: Undeclared identifier: 'GetSubChild'..
Подскажите плз, где чего дописать/прописать нужно, чтобы заработали, без них почему-то клик не выполняется( .