Главная страница
    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.47 MB
Время: 0.031 c
3-1116408719
_e_u_
2005-05-18 13:31
2005.06.29
Вредный, простой скуэль запрос:


4-1115450526
hwmaster
2005-05-07 11:22
2005.06.29
как проверить сколько свободного места осталось в оперативке ?


14-1117478658
Ермак
2005-05-30 22:44
2005.06.29
Срочно! О принтере HP IIP


1-1117968479
lifo
2005-06-05 14:47
2005.06.29
МЕТОДЫ РАСПОЗНАВАНИЯ ОБРАЗОВ


5-1088160756
Saint
2004-06-25 14:52
2005.06.29
Published-свойство типа <B>TClass</B> - не читается в Runtime.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский