Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.06.29;
Скачать: CL | DM;

Вниз

Программное нажатие левой кнопки мыши !   Найти похожие ветки 

 
Alpine   (2005-05-04 22:46) [0]

Здраствуйте уважаемые мастаки ! Помогите программно нажимать левую кнопку мыши !

Заранее благодарен всем откликнувшимся !


 
Marser ©   (2005-05-04 23:28) [1]

Использовать сообщения Windows.
Например, вот так:
var p:TPoint;
begin
 GetCursorPos(p);
 sendmessage(Handle,WM_LBUTTONDOWN,MK_LBUTTON,p.X+p.Y shl 16);


В данном случае нажатие "происхоит" над формой в текущих координатах.


 
Alpine   (2005-05-04 23:45) [2]

Мне нужно нажать на кнопку которая находится на моей в форме в  TWebBrowser. То есть эта кнопка загруженна с интернета !


 
Marser ©   (2005-05-05 00:11) [3]

Находишь эту кнопку с помощью findwindow-findwindowex или посылаешь событие непосредственно браузеру.
В принципе, для кнопок существует сообщение bm_click.


 
Alpine   (2005-05-05 00:25) [4]

не мог бы ты на примере показать как это реализовать ? Плизз


 
Alpine   (2005-05-06 14:04) [5]

Ну помогите, люди добрые ...


 
ANB ©   (2005-05-06 14:32) [6]


> Marser ©   (05.05.05 00:11) [3]
- нету этой кнопки в списке окон. По координатам кликать придется.


> Alpine   (06.05.05 14:04) [5]
- а ты чего пишешь ? Автотестер страниц ?


 
Alpine   (2005-05-06 15:39) [7]

> ANB

НЕт ! Это кнопка, на которую мне надо нажать, вводит изменения на сайте (т.е submit).


 
Delphi_is_cool ©   (2005-05-06 21:15) [8]

Определить координаты и:
 
Mouse_Event(MOUSEEVENTF_LEFTDOWN or MOUSEEVENTF_LEFTUP,
             MOUSEEVENTF_ABSOLUTE, MOUSEEVENTF_ABSOLUTE, 0, 0);


По моему так.


 
alpet ©   (2005-05-06 22:25) [9]

Все что было в [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;


 
Alpine   (2005-05-07 01:04) [10]

2 alpet
А разве у кнопки с HTML страницы есть HANDLE ?? Не получается твоим способом ( Может есть ещё какие идеи ??

2 Delphi_is_cool
Твоим получается но вариант alpet-а поинтереснее ! Большое тебе спасибо !


 
alpet ©   (2005-05-07 02:09) [11]

Это зависит от движка браузера. В большинстве своем обычные кнопки в страницах не существуют как оконные компонеты. Движок прорисовывает эти псевдо-кнопки теми же функциям что и Windows, не создавая контролов. Так что добраться с помощью функции FindWindow едва-ли удастся. Если известны координаты кнопки можно отправлять окну (компонента TWebBrowser) сообщение WM_LBUTTONDOWN как указано в [2]. Если они не известны или могут изменяться, можно попытаться перехватить функцию TextOut - как правило через нее можно подобраться к координатам каждой выводимой в окне браузера надписи, в том числе и на кнопке, но сам этот прием довольно сложен.



Страницы: 1 вся ветка

Текущий архив: 2005.06.29;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.038 c
1-1118216795
llirik
2005-06-08 11:46
2005.06.29
Ассоциативный массив


6-1112014812
Zyb
2005-03-28 17:00
2005.06.29
Имя пользователя удаленного компьютера


3-1115898208
-K2-
2005-05-12 15:43
2005.06.29
Проблемы при соединении с БД по локальной сети.


14-1117290488
Ломброзо
2005-05-28 18:28
2005.06.29
Как подписаться на буржуйскую группу новостей?


8-1109855588
Mahnaty
2005-03-03 16:13
2005.06.29
Контур произвольной фигуры