Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
AndreySeVeN
2 / 2 / 2
Регистрация: 06.06.2014
Сообщений: 156
Записей в блоге: 1
1

Клик в соответствии с таймером

15.07.2014, 14:41. Просмотров 773. Ответов 19
Метки нет (Все метки)

Кликните здесь для просмотра всего текста

Вот то что я хотел сделать уже пол года. Нужно что бы в программе был таймер, а таймер работает с интервалом в 1 мс. Если в таймере определенное значение, то он делает клик. Пример:
1) текстовый файл
2) в нем написаны значения миллисекунд
3) эти значения выглядят так:
1052
2563
7458
8965
10000
4) Если прошло 1052 тика таймера, делается клик мышкой, 2563 клик мышкой, 7458 клик мышкой и т.д.
5) Таймер очень точно отсчитывает эти миллисекунды! любая большая погрешность = смерть для проекта!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.07.2014, 14:41
Ответы с готовыми решениями:

работа с таймером
как сделать так чтобы функция работала определенное кол-во времени

Проблема с таймером
Почему на Delphi XE4 в "Таймере" не работает следующий код: procedure...

Работа с таймером
Помогите разобраться в организации работы с таймером. От программы требуется,...

работа с таймером
здравствуйте я хочу чтобы при запуске программы форма 1 исчезла ч/з к примеру 2...

Работа с таймером
Ребят подскажи пожалуйста, вот у меня есть stringgrid и на нем стоит защита от...

19
TheFox
131 / 67 / 10
Регистрация: 13.05.2013
Сообщений: 437
15.07.2014, 14:51 2
Цитата Сообщение от AndreySeVeN Посмотреть сообщение
Вот то что я хотел сделать уже пол года.
А в чем вопрос? Хотите чтобы вам такую написали? Так это во фриланс.
0
AndreySeVeN
2 / 2 / 2
Регистрация: 06.06.2014
Сообщений: 156
Записей в блоге: 1
15.07.2014, 14:57  [ТС] 3
TheFox, Я хочу одного. Понять как сделать такой точный таймер вплоть до 1 мсек.
Все таймеры, которые я пробовал, не дают такой гарантии как в видео. Клики происходили с задержкой вплоть до 100 мсек.
0
FIL
Модератор
3419 / 2555 / 726
Регистрация: 19.09.2012
Сообщений: 7,923
15.07.2014, 15:06 4
Цитата Сообщение от AndreySeVeN Посмотреть сообщение
как сделать такой точный таймер вплоть до 1 мсек.
Никак.
0
AndreySeVeN
2 / 2 / 2
Регистрация: 06.06.2014
Сообщений: 156
Записей в блоге: 1
15.07.2014, 15:07  [ТС] 5
FIL, Но в ВИДЕО все работает. И таких программ уже несколько штук. И везде точнейший таймер
0
FIL
Модератор
3419 / 2555 / 726
Регистрация: 19.09.2012
Сообщений: 7,923
15.07.2014, 15:12 6
Цитата Сообщение от AndreySeVeN Посмотреть сообщение
И таких программ уже несколько штук. И везде точнейший таймер
Что это за программы и как ты проверял точность их таймеров?
0
AndreySeVeN
2 / 2 / 2
Регистрация: 06.06.2014
Сообщений: 156
Записей в блоге: 1
15.07.2014, 15:19  [ТС] 7
FIL, Во-первых, в txt файле эти числа есть. Во-вторых, в видео сбоку эти числа появляются.
0
northener
пофигист широкого профиля
3423 / 2323 / 630
Регистрация: 15.07.2013
Сообщений: 13,749
15.07.2014, 15:20 8
Цитата Сообщение от AndreySeVeN Посмотреть сообщение
Я хочу одного. Понять как сделать такой точный таймер вплоть до 1 мсек.
Попробуй так Таймер высокой точности
0
AndreySeVeN
2 / 2 / 2
Регистрация: 06.06.2014
Сообщений: 156
Записей в блоге: 1
15.07.2014, 15:23  [ТС] 9
northener, Да... Теперь еще +100500 операций нужно проделать. Чтение из файла, клик в соответствии с таймером. Охх...
0
TheFox
131 / 67 / 10
Регистрация: 13.05.2013
Сообщений: 437
15.07.2014, 15:31 10
Цитата Сообщение от FIL Посмотреть сообщение
Что это за программы и как ты проверял точность их таймеров?
Боты для игры. И, судя по всему, у ТС они не работают, как ему кажется из-за того что таймер недостаточно точный, хотя скорее всего он неправ, так как на приведенном им видео работа со временем реализована вообще через GetTickCount, который ЕМНИП точностью не страдает. Да и если рассуждать логически, если бы вдруг в какой-нибудь игре была важна погрешность в миллисекунду, живому человеку играть было бы невозможно.
0
AndreySeVeN
2 / 2 / 2
Регистрация: 06.06.2014
Сообщений: 156
Записей в блоге: 1
15.07.2014, 15:36  [ТС] 11
FIL,
Delphi
1
2
3
4
5
6
7
8
9
procedure Delay( MSec: Longint );
var
  FirstTick: Longint;
begin
   FirstTick := GetMessageTime;
   repeat
      Application.ProcessMessages;
   until GetTickCount - FirstTick >= MSec;
end;
В видео что то типа такого кода.

Добавлено через 1 минуту
TheFox, В видео есть кусок кода, в котором наверное ничего нет важного
0
northener
пофигист широкого профиля
3423 / 2323 / 630
Регистрация: 15.07.2013
Сообщений: 13,749
15.07.2014, 15:36 12
Цитата Сообщение от TheFox Посмотреть сообщение
через GetTickCount, который ЕМНИП точностью не страдает
Точнее страдает точно так же как стандартный таймер ибо они используют одни и те же нервные тики.
0
AndreySeVeN
2 / 2 / 2
Регистрация: 06.06.2014
Сообщений: 156
Записей в блоге: 1
15.07.2014, 15:40  [ТС] 13
http://i65.fast pic.ru/big/2014/0715/8c/50ca5314cb6fe202b842b405566cf48c.png
Хах хоть так уже. Есть тут что полезное?
0
Mawrat
12827 / 5735 / 1700
Регистрация: 19.09.2009
Сообщений: 8,807
15.07.2014, 16:05 14
Значения, возвращаемые GetTickCount(), имеют точность около 10 миллисекунд. На некоторых системах точность около 3 миллисекунд.
БОльшую точность можно реализовать на основе сведений о тактовой частоте процессора: QueryPerformanceFrequency() и показаний счётчика тактов: QueryPerformanceCounter().

Пример: Как написать точный таймер?

Добавлено через 9 минут
Цитата Сообщение от AndreySeVeN Посмотреть сообщение
Клик в соответствии с таймером
Сведения о щелчках мыши передаются через сообщения Windows - здесь точность до 1 миллисекунды не обеспечишь. Да и в данной задаче такая точность, на самом деле, не нужна. Об этом ранее в теме уже упоминали.
0
FIL
Модератор
3419 / 2555 / 726
Регистрация: 19.09.2012
Сообщений: 7,923
15.07.2014, 16:09 15
Цитата Сообщение от AndreySeVeN Посмотреть сообщение
В видео что то типа такого кода.
И как этот код связан с интервалом сработки таймера или кликом кнопки?
0
AndreySeVeN
2 / 2 / 2
Регистрация: 06.06.2014
Сообщений: 156
Записей в блоге: 1
15.07.2014, 16:12  [ТС] 16
Mawrat, Так что предлагаете делать? Таймер есть. Нужно как то туда пристроить работу с файлом. Вот что самое главное, считать txt файл и делать клик мышкой ИЛИ нажатие кнопки клавиатуры
0
Mawrat
12827 / 5735 / 1700
Регистрация: 19.09.2009
Сообщений: 8,807
15.07.2014, 17:00 17
Данные из файла можно в динамический массив записать - Arr : array of Integer.
А обработку можно сделать по следующему плану. У таймера есть свойство OnTimer:
Delphi
1
property OnTimer: TNotifyEvent read FOnTimer write FOnTimer;
Ему надо присвоить обработчик события - точно также, как это делается для компонента TTimer. В этом обработчике надо сделать следующее:
1. Остановить таймер.
2. Сэмулировать нужные события от мыши или клавиатуры - через вызов SendMessage(). Для мыши это сообщения WM_LBUTTONDOWN (нажатие левой кнопки мыши), потом - WM_LBUTTONUP (отпускание левой кнопки мыши). Для клавиатуры нажатие/отпускание клавиши: WM_KEYUP, WM_KEYDOWN.
Взамен прямого вызова SendMessage можно воспользоваться функциями из модуля Windows:
mouse_event() - эмуляция событий от мыши;
keybd_event() - эмуляция событий от клавиатуры.
3. Выбрать из массива Arr следующий элемент и задать новый интервал = Arr[i]:
Delphi
1
2
3
4
5
6
7
8
9
10
Inc(i);
if i = Length(Arr) then
begin
  //Все элементы массива обработаны. STOP.
  Exit;
end
else
begin
  //Для таймера задать новый интервал, равный Arr[i].
end;
4. Запустить таймер.
0
TheFox
131 / 67 / 10
Регистрация: 13.05.2013
Сообщений: 437
15.07.2014, 17:09 18
ТСу ведь нужно кликать не в своей программе, а судя по его вопросам это однозначно не его уровень. Увы и ах.
0
AndreySeVeN
2 / 2 / 2
Регистрация: 06.06.2014
Сообщений: 156
Записей в блоге: 1
15.07.2014, 17:21  [ТС] 19
TheFox, угу
0
DelphiXE3
22 / 22 / 6
Регистрация: 24.03.2013
Сообщений: 119
18.07.2014, 04:07 20
Высокоточный таймер -->http://www.webdelphi.ru/2009/08/vysokotochnyj-tajmer-svoimi-rukami/
0
18.07.2014, 04:07
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.07.2014, 04:07

Работа с таймером
Здравствуйте, первый раз на этом форуме и в делфи, так что не обессудте....

Работа с таймером
В первые пробую таймер и сразу проблема суть: при появлении формы требуется...

Работа с таймером(?)
Доброго времени суток. Подскажите пожалуйста, никак не могу понять даже с чего...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru