Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2005.06.29;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "WinAPI";
Текущий архив: 2005.06.29;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.044 c
14-1117785112
Иксик
2005-06-03 11:51
2005.06.29
Из Москвы в Кондрово


14-1117594536
Kerk
2005-06-01 06:55
2005.06.29
С днем рожденья! 1 июня


14-1117254337
D2005
2005-05-28 08:25
2005.06.29
Есть ли возможность?


1-1118054413
Gear
2005-06-06 14:40
2005.06.29
Удаление элемента из динамического массива.


3-1116231833
malamba
2005-05-16 12:23
2005.06.29
округление при выводе из базы данных





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский