Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Имитация клика мыши по форме, Как с имитировать клик мыши на форме? 
:(
    Опции темы
kosyak
Дата 2.7.2011, 01:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 15.5.2011

Репутация: нет
Всего: нет



Столкнулся с такой проблемой, необходимо с имитировать клик мыши на форме. Причем нужно сделать без передвижения курсора и имитация клика, с этим все хорошо. Есть ли возможность с имитировать клик мыши не наводя курсор мыши на форму?

Была идея с помощью SendMessage послать сообщение WM_MOUSEMOVE, а затем послать сообщение BM_CLICK. BM_CLICK работает на ура, а вот с WM_MOUSEMOVE не могу разобраться с MAKEPOINTS.

Это сообщение отредактировал(а) kosyak - 2.7.2011, 02:08
PM MAIL   Вверх
jhonyxakep
Дата 2.7.2011, 11:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Divide Et Impera
**


Профиль
Группа: Участник
Сообщений: 983
Регистрация: 7.4.2009
Где: Что, Когда?

Репутация: нет
Всего: 8



Цитата(kosyak @  2.7.2011,  01:59 Найти цитируемый пост)
Есть ли возможность с имитировать клик мыши не наводя курсор мыши на форму?


Каждый элемент формы имеет свой класс и имя. Таким образом можно получить хендл кнопки, текстового поля и тп, а потом послать сообщение нажатие кнопки мыши.
PM MAIL ICQ   Вверх
kosyak
Дата 2.7.2011, 12:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 15.5.2011

Репутация: нет
Всего: нет



хэндл я определяю, посылал сообщения нажатия кнопки мыши, ничего не получается, событие формы OnClick не наступает, с кнопкой проблем нет все хорошо работает.

Делаю вот так:
Код

...
hWnd:=findwindow  ('Tform1', 'Form1');
SendMessage(hWnd,BM_CLICK,0,0);
...


Поэтому я хотел сначала имитировать движение мыши по форме
Код

...
SendMessage (hWnd,WM_MOUSEMOVE,0, MAKEPOINTS(616, 188));
...


Makepoints не верно задан, не знаю как правильно

Это сообщение отредактировал(а) kosyak - 2.7.2011, 13:20
PM MAIL   Вверх
Keeper89
Дата 2.7.2011, 14:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2580
Регистрация: 26.2.2009

Репутация: 14
Всего: 58



Код

  FormHandle: THandle;
begin
  FormHandle := FindWindow('Tform1', 'Form1');
  if FormHandle <> 0 then
  begin
    SendMessage(FormHandle, WM_LBUTTONDOWN, 0, 0);
    SendMessage(FormHandle, WM_LBUTTONUP, 0, 0);
  end;


Это сообщение отредактировал(а) Keeper89 - 2.7.2011, 14:23


--------------------
PM MAIL WWW   Вверх
kosyak
Дата 2.7.2011, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 15.5.2011

Репутация: нет
Всего: нет



Цитата(Keeper89 @ 2.7.2011,  14:19)
Код

  FormHandle: THandle;
begin
  FormHandle := FindWindow('Tform1', 'Form1');
  if FormHandle <> 0 then
  begin
    SendMessage(FormHandle, WM_LBUTTONDOWN, 0, 0);
    SendMessage(FormHandle, WM_LBUTTONUP, 0, 0);
  end;

Спасибо большое!!! все работает, не понятно почему SendMessage(hWnd,BM_CLICK,0,0), ведь BM_CLICK уже содержит сообщения WM_LBUTTONDOWN и WM_LBUTTONUP
PM MAIL   Вверх
Keeper89
Дата 2.7.2011, 15:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2580
Регистрация: 26.2.2009

Репутация: 14
Всего: 58



BM_CLICK только для кнопок предназначен.


--------------------
PM MAIL WWW   Вверх
serega12
  Дата 3.7.2011, 11:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 3.7.2011

Репутация: нет
Всего: нет



Я новичёк в программ smile ировании, можно более подробно, что и куда прописывать???
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.0453 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.