![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Всем доброго времени суток, последний раз писал программу еще в колледже на ООП, но к сожелению там мы не проходили работу с манипулятором из делфи...
Есть сайт, есть координаты, осталось сделать так что бы после нажатия на Button2 с delay 3000 происходила имитация нажатия мышки по списку координат... Подскажите если не затруднит, что именно нужно написать в коде? и еще один момент, нужно что бы в координате х500 у335 произошло нажатия на левую кнопку мыши, а в координате х500 у480 отпуск, тоесть что бы он переташил объект. Как это можно реализовать. |
#2
|
|||
|
|||
![]() Все просто! Гляди:
Код:
var pt: TPoint; begin GetCursorPos(pt); // получаем координаты мыши SetCursorPos(pt.X, pt.Y); // устанавливаем координаты мыши mouse_event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTDOWN, pt.X, pt.Y, 0, 0); // опускаем левую клавишу мыши по заданным координатам mouse_event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTUP, pt.X, pt.Y, 0, 0); // аналогично поднимаем |
#3
|
|||
|
|||
![]() Цитата:
Спасибо за ответ, но что то не то.... когда я изменил свой код к такому виду Код:
procedure TForm1.Button3Click(Sender: TObject); begin GetCursorPos(pt); SetCursorPos(pt.X, pt.Y); mouse_event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTDOWN, pt.X, pt.Y, 630, 560); mouse_event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTUP, pt.X, pt.Y, 630, 560); mouse_event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTDOWN, pt.X, pt.Y, 600, 560); mouse_event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTUP, pt.X, pt.Y, 600, 560); mouse_event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTDOWN, pt.X, pt.Y, 475, 433); mouse_event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTUP, pt.X, pt.Y, 475, 475); end; end. С надеждой что при нажатие на кнопку курсор мыши передвинется, ничего не произошло, курсор остался на кнопке, а заветные кнопки на сайте так и не нажались... Я чувствую что проблема здесь уж точно не сложная, помогите ее найти и решить... От кода требуется что бы он нажимал на кнопки сайта в форме WebBrowser, координаты кнопок известны. |
#4
|
||||
|
||||
![]() попробуй указать свои координаты перед
SetCursorPos(pt.X, pt.Y); т.е. Код:
GetCursorPos(pt); pt.X:=630; pt.Y:=560; SetCursorPos(pt.X, pt.Y); mouse_event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTDOWN, pt.X, pt.Y, 0, 0); mouse_event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTUP, pt.X, pt.Y, 0, 0); и вопрос почти в тему: подскажите как обзывается нажатие на колесико мыши (левая кнопка-MOUSEEVENTF_LEFTDOWN, правая-MOUSEEVENTF_RIGHTDOWN, а колесико)? Понять, что хочет заказчик - бесценно, ведь он платит MasterCard ![]() Последний раз редактировалось cotseec, 09.09.2008 в 00:53. |
#5
|
||||
|
||||
![]() http://codelab.3dn.ru/publ/10-1-0-22
вот статья "кликнуть левой кнопкой мыши в указанных координатах" думаю поможет. |
#6
|
|||
|
|||
![]() Спасибо всем, все работает, а как изменить название на [Решено].... ?
Последний раз редактировалось tierpunk, 09.09.2008 в 22:10. |
#7
|
|||
|
|||
![]() Цитата:
Код:
MOUSEEVENTF_LEFTDOWN // левая MOUSEEVENTF_LEFTUP MOUSEEVENTF_RIGHTDOWN // правая MOUSEEVENTF_RIGHTUP MOUSEEVENTF_MIDDLEDOWN // средняя она же колесико (нажатие!) MOUSEEVENTF_MIDDLEUP MOUSEEVENTF_WHEEL // прокрутка колосика |