Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 08.09.2008, 00:29
tierpunk tierpunk вне форума
Прохожий
 
Регистрация: 08.09.2008
Сообщения: 6
Репутация: 10
По умолчанию Клик мышки в указанные координаты, после нажатия на кнопку.

Всем доброго времени суток, последний раз писал программу еще в колледже на ООП, но к сожелению там мы не проходили работу с манипулятором из делфи...
Есть сайт, есть координаты, осталось сделать так что бы после нажатия на Button2 с delay 3000 происходила имитация нажатия мышки по списку координат... Подскажите если не затруднит, что именно нужно написать в коде?
и еще один момент, нужно что бы в координате х500 у335 произошло нажатия на левую кнопку мыши, а в координате х500 у480 отпуск, тоесть что бы он переташил объект. Как это можно реализовать.
Ответить с цитированием
  #2  
Старый 08.09.2008, 01:55
Drozh Drozh вне форума
Активный
 
Регистрация: 12.06.2008
Сообщения: 313
Репутация: 40
По умолчанию

Все просто! Гляди:
Код:
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  
Старый 09.09.2008, 00:39
tierpunk tierpunk вне форума
Прохожий
 
Регистрация: 08.09.2008
Сообщения: 6
Репутация: 10
По умолчанию

Цитата:
Сообщение от Drozh
Все просто! Гляди:
Код:
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); // аналогично поднимаем
Также можно делать с правой, средней клавишей, колесиком... Ну тут я думаю разберешься))

Спасибо за ответ, но что то не то....

когда я изменил свой код к такому виду
Код:
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  
Старый 09.09.2008, 00:49
Аватар для cotseec
cotseec cotseec вне форума
Активный
 
Регистрация: 16.07.2008
Сообщения: 353
Версия Delphi: D7,TDE06,RAD09
Репутация: 1443
По умолчанию

попробуй указать свои координаты перед
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  
Старый 09.09.2008, 08:49
Аватар для :S.p.a.m.
:S.p.a.m. :S.p.a.m. вне форума
Активный
 
Регистрация: 04.05.2008
Сообщения: 260
Репутация: 15
По умолчанию

http://codelab.3dn.ru/publ/10-1-0-22
вот статья "кликнуть левой кнопкой мыши в указанных координатах" думаю поможет.
Ответить с цитированием
  #6  
Старый 09.09.2008, 20:14
tierpunk tierpunk вне форума
Прохожий
 
Регистрация: 08.09.2008
Сообщения: 6
Репутация: 10
По умолчанию

Спасибо всем, все работает, а как изменить название на [Решено].... ?

Последний раз редактировалось tierpunk, 09.09.2008 в 22:10.
Ответить с цитированием
  #7  
Старый 09.09.2008, 20:57
Drozh Drozh вне форума
Активный
 
Регистрация: 12.06.2008
Сообщения: 313
Репутация: 40
По умолчанию

Цитата:
Сообщение от cotseec
и вопрос почти в тему: подскажите как обзывается нажатие на колесико мыши (левая кнопка-MOUSEEVENTF_LEFTDOWN, правая-MOUSEEVENTF_RIGHTDOWN, а колесико)?
Гляди:
Код:
 MOUSEEVENTF_LEFTDOWN  // левая      
 MOUSEEVENTF_LEFTUP          

 MOUSEEVENTF_RIGHTDOWN // правая     
 MOUSEEVENTF_RIGHTUP         

 MOUSEEVENTF_MIDDLEDOWN // средняя она же колесико (нажатие!) 
 MOUSEEVENTF_MIDDLEUP

 MOUSEEVENTF_WHEEL // прокрутка колосика
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 15:10.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025