Эмуляция клика мышки в LCL

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Эмуляция клика мышки в LCL

Сообщение Vadim » 29.10.2018 10:32:09

Есть ли способ эмулировать клик мышки не выходя за границы LCL? Т.е. чтобы было кроссплатформенно...
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Эмуляция клика мышки в LCL

Сообщение Alex2013 » 30.10.2018 16:32:19

А какая разница ?
Например для клавиатуры одна строчка WinApi (Но SendMessage если не ошибаюсь вроде вполне кросплатформенный вызов ):

Код: Выделить всё
Procedure EmuDown ; Var K:Word; Begin  K:=vk_Down;SendMessage(Form1.Handle,WM_SYSKEYDOWN,k,0); end;

(ну или PostMessage(Handle,WM_SYSKEYDOWN,k,0);)

По идее должно работать и это
Код: Выделить всё
Procedure EmuDown_LCL ; Var K:Word; Begin  K:=vk_Down; Application. ControlKeyDown(Form1,k,[]);end;

Но особого смысла в замене не вижу ..

Мышка эмулируется аналогично... ( через WM_SYSMOUSEDOWN и Application. ControlMouseDown)
Последний раз редактировалось Alex2013 30.10.2018 16:42:19, всего редактировалось 3 раз(а).
Alex2013
долгожитель
 
Сообщения: 2923
Зарегистрирован: 03.04.2013 11:59:44

Re: Эмуляция клика мышки в LCL

Сообщение Vadim » 30.10.2018 16:38:03

Alex2013
Vadim писал(а):чтобы было кроссплатформенно...

;-)
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Эмуляция клика мышки в LCL

Сообщение Alex2013 » 30.10.2018 16:43:31

Vadim писал(а):Alex2013
Vadim писал(а):чтобы было кроссплатформенно...

;-)

А чем не подходит Application. ControlMouseDown ?
Alex2013
долгожитель
 
Сообщения: 2923
Зарегистрирован: 03.04.2013 11:59:44

Re: Эмуляция клика мышки в LCL

Сообщение pupsik » 30.10.2018 16:47:12

Vadim есть. Компоненты лазаря посмотрите (папку)...

А что собственно надо то?
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

Re: Эмуляция клика мышки в LCL

Сообщение Vadim » 30.10.2018 17:02:29

Alex2013 писал(а):А чем не подходит Application. ControlMouseDown ?

Не нашёл такого...

pupsik писал(а):Компоненты лазаря посмотрите (папку)...

Описания маловато. Приходится по очереди испытывать разные методы на предмет того, чтобы они работали как нужно.
pupsik писал(а):А что собственно надо то?

Нужно сымитировать нажатие пользователем или мышки или клавиши. Есть программа, которая своим окошком блокирует доступ к компу. Пользователь подносит свою карту доступа к антенне и комп разблокируется. Если нет активности, т.е. не жмётся клава или мышь, то комп опять блокируется. Нужно сымитировать активность при убирании блокирующего окна с экрана.
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Эмуляция клика мышки в LCL

Сообщение Alex2013 » 30.10.2018 18:09:46

Vadim писал(а):
Alex2013 писал(а):А чем не подходит Application. ControlMouseDown ?

Не нашёл такого...

Гм ... В самом деле нет ... :roll:
Голову не приходит ничего хорошего кроме использования модуля mouseamdkeyinput.pas
:arrow: http://wiki.freepascal.org/MouseAndKeyInput :idea:
(Не знаю уж как там с кроссплаформенностью и координатами (возможно нужны экранные ) )

Зы
На гугле вас точно забанилии.... :wink: Но прямо на форуме поискать трудно было ? :roll:
viewtopic.php?f=5&t=9615

Зы Зы
Что бы разобраться мешающим окошком или приложением ничего "нажимать" не нужно ... Можно просто "по килять" процесс или послать сигнал на закрытие окна . (Но если это реально умная зашита то блокировка клавиатуры и мыши идут на системном уровне а сообщение в окне просто для "удобства отдыхающих " )
Последний раз редактировалось Alex2013 30.10.2018 18:55:13, всего редактировалось 1 раз.
Alex2013
долгожитель
 
Сообщения: 2923
Зарегистрирован: 03.04.2013 11:59:44

Re: Эмуляция клика мышки в LCL

Сообщение Vadim » 30.10.2018 18:47:24

Alex2013 писал(а):Голову не приходит ничего хорошего кроме использования модуля mouseamdkeyinput.pas
:arrow: http://wiki.freepascal.org/MouseAndKeyInput :idea:
(Не знаю уж как там с кроссплаформенностью и координатами (возможно нужны экранные ) )

Зы
На гугле вас точно забанилии.... :wink: Но прямо на форуме поискать трудно было ? :roll:
viewtopic.php?f=5&t=9615

В Линуксе нужно дополнительную библиотеку устанавливать, иначе работать не будет.
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Эмуляция клика мышки в LCL

Сообщение Alex2013 » 30.10.2018 19:08:31

Еще где-то в дебрях Лазаруса есть вот такой модуль ... JwaWinUser.pas
https://searchcode.com/codesearch/view/6415339/ (По ссылке качать только если не найдется )

А по поводу библиотеки вполне возможно что она и так уже установлена (системная же ! :idea: ) ...
Зы
А еще Xtst можно по идее статически приликовать ...
{$linklib Xtst} - возможно я что-то путаю но идея понятна .
(В винде вообще достаточно DLL кинуть в один каталог с исполняемым файлом - знаю в "общем виде" этот фокус в Линуксе не проходит...
Но может программа на Лазарус чуток умнее средне статистического "квадратно-гездового " Линукс приложения окажется ? :idea: )

зы зы
И разумеется никто по идее не может помешать локально дописать переименую LD_LIBRARY_PATH перед запуском программы .
----
Ну все извиняюсь увлекся !(Просто самому интересно стало. )
Alex2013
долгожитель
 
Сообщения: 2923
Зарегистрирован: 03.04.2013 11:59:44

Re: Эмуляция клика мышки в LCL

Сообщение Vadim » 30.10.2018 20:37:29

Alex2013 писал(а):А по поводу библиотеки вполне возможно что она и так уже установлена (системная же ! :idea: ) ...

Сейчас у себя посмотрел - действительно, уже стоит. На работе ещё завтра гляну. Если есть, тогда попробую с MouseAndKeyInput поиграться... ;-)
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 26

Рейтинг@Mail.ru