![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Программное нажатие левой кнопки мыши ! [D6, Win95/98, WinME, NT4, Win2k, WinXP]
Alpine © (2005-05-04 22:46:00)Здраствуйте уважаемые мастаки ! Помогите программно нажимать левую кнопку мыши !
Заранее благодарен всем откликнувшимся !
alpet (2005-05-07 02:09:00) [1]Это зависит от движка браузера. В большинстве своем обычные кнопки в страницах не существуют как оконные компонеты. Движок прорисовывает эти псевдо-кнопки теми же функциям что и Windows, не создавая контролов. Так что добраться с помощью функции FindWindow едва-ли удастся. Если известны координаты кнопки можно отправлять окну (компонента TWebBrowser) сообщение WM_LBUTTONDOWN как указано в [2]. Если они не известны или могут изменяться, можно попытаться перехватить функцию TextOut - как правило через нее можно подобраться к координатам каждой выводимой в окне браузера надписи, в том числе и на кнопке, но сам этот прием довольно сложен.
Alpine (2005-05-07 01:04:00) [2]2 alpet
А разве у кнопки с HTML страницы есть HANDLE ?? Не получается твоим способом ( Может есть ещё какие идеи ??
2 Delphi_is_cool
Твоим получается но вариант alpet-а поинтереснее ! Большое тебе спасибо !
alpet (2005-05-06 22:25:00) [3]Все что было в [3]
procedure TForm1.ClickSubmit;
var
wnd: HWND;
begin
wnd := WebBrowser1.Handle;
wnd := FindWindowEx (wnd, 0, nil { или 'TButton' или 'button' }, 'Sumbit');
if wnd <> 0 then PostMessage (wnd, BM_CLICK, 0, 0);
end;
Delphi_is_cool (2005-05-06 21:15:00) [4]Определить координаты и:
Mouse_Event(MOUSEEVENTF_LEFTDOWN or MOUSEEVENTF_LEFTUP,
MOUSEEVENTF_ABSOLUTE, MOUSEEVENTF_ABSOLUTE, 0, 0);
По моему так.
Alpine (2005-05-06 15:39:00) [5]> ANB
НЕт ! Это кнопка, на которую мне надо нажать, вводит изменения на сайте (т.е submit).
ANB (2005-05-06 14:32:00) [6]
> Marser © (05.05.05 00:11) [3]
- нету этой кнопки в списке окон. По координатам кликать придется.
> Alpine (06.05.05 14:04) [5]
- а ты чего пишешь ? Автотестер страниц ?
Alpine (2005-05-06 14:04:00) [7]Ну помогите, люди добрые ...
Alpine (2005-05-05 00:25:00) [8]не мог бы ты на примере показать как это реализовать ? Плизз
Marser (2005-05-05 00:11:00) [9]Находишь эту кнопку с помощью findwindow-findwindowex или посылаешь событие непосредственно браузеру.
В принципе, для кнопок существует сообщение bm_click.
Alpine (2005-05-04 23:45:00) [10]Мне нужно нажать на кнопку которая находится на моей в форме в TWebBrowser. То есть эта кнопка загруженна с интернета !
Marser (2005-05-04 23:28:00) [11]Использовать сообщения Windows.
Например, вот так:
var p:TPoint;
begin
GetCursorPos(p);
sendmessage(Handle,WM_LBUTTONDOWN,MK_LBUTTON,p.X+p.Y shl 16);
В данном случае нажатие "происхоит" над формой в текущих координатах.