![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Недо
Участник клуба
Регистрация: 11.08.2011
Сообщений: 1,394
|
![]()
Доброго дня.
Имеется мышь с поддержкой макросов. На ней написал макрос, который выполняет клик (нажимает ЛКМ и отпускает ЛКМ). Кликается до тех пор, пока я не отпущу клавишу мыши, к которой этот макрос привязан. Я попробовал написать эмуляцию ЛКМ на Delphi, но скорость(кол-во кликов в секунду) получилась меньшей, чем при использовании мышки. Использовал грубый способ: SendInput + Timer с интервалом 1 мс. Так вот, возник вопрос: а вообще можно эмулировать клики программно с одинаковой/быстрой скоростью, чем это делает аппаратно мышь? Нужна более грамотная реализация с SendInput?
С помощью программирования можно разбогатеть и изменить мир к лучшему (с) Бьерн Страуструп
|
![]() |
![]() |
![]() |
#2 | |
Форумчанин
Регистрация: 06.01.2011
Сообщений: 369
|
![]() Цитата:
Программирую по необходимости
|
|
![]() |
![]() |
![]() |
#3 |
Недо
Участник клуба
Регистрация: 11.08.2011
Сообщений: 1,394
|
![]()
Да, VCL. Конечно, позволяет, почему бы и нет?
С помощью программирования можно разбогатеть и изменить мир к лучшему (с) Бьерн Страуструп
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,091
|
![]()
таймер имеет точность чуть выше нуля. Он нормально работает только если в системе ничего не происходит. Чуть какой задачей комп загрузил - там уже погрешность на секунды может идти. Лучше уж зациклить и в цикле проверять сколько времени прошло с предыдущего клика и если 1мс или больше, то кликать.
|
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 06.01.2011
Сообщений: 369
|
![]()
Я бы еще попробовал бы вынести все это подальше от VCL в отдельный поток.
Программирую по необходимости
|
![]() |
![]() |
![]() |
#6 | |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,434
|
![]() Цитата:
В случае с ОС тут целая цепочка посредников от курсора до железа, которые и генерят эту самую задержку, докучи ещё сама ОС доставляет задержкой во времени в пару МС (это не ОС реального времени же ![]() Последний раз редактировалось Человек_Борща; 22.04.2016 в 23:29. |
|
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,372
|
![]()
А я не понял, зачем вообще нужен интервал в 1мс?
Что мешает вызывать SendInput вообще без задержек? |
![]() |
![]() |
![]() |
#8 |
Недо
Участник клуба
Регистрация: 11.08.2011
Сообщений: 1,394
|
![]()
Человек_Борща, в целом так и мыслил.
waleri, да интервал есть в таймере, так-то он, конечно, не нужен при использовании бесконечного цикла.
С помощью программирования можно разбогатеть и изменить мир к лучшему (с) Бьерн Страуструп
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Эмуляция нажатий мыши | AnshaDobro | Общие вопросы Delphi | 1 | 20.02.2016 22:41 |
эмуляция нажатий клавиш | Host-2013 | Общие вопросы Delphi | 2 | 10.03.2013 00:52 |
Эмуляция нажатий клавиш в играх | Boris-Britva | Общие вопросы Delphi | 6 | 24.06.2011 15:20 |
Самая быстрая сортировка динамической структуры данных | Mixim | Общие вопросы .NET | 1 | 28.11.2010 10:02 |
Эмуляция нажатий клавиш | BorisBritva | Общие вопросы Delphi | 1 | 01.11.2010 13:09 |