Автор Тема: бесконечный цикл нажатия клавиш с задержкой  (Прочитано 9382 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Грр [?]

  • Новичок
  • *
  • Сообщений: 5
  • Репутация: 0
    • Награды
Добрый день! Понадобился скрипт, но я далёкий от программирования человек, поэтому на порядки раз быстрее обратиться к специалистам, нежели разбираться самому.

Необходим скрипт на цикличное нажатие двух клавиш "1" и "2". Что-то типа:
запуск "F1"
окончание "F2"
постоянное попеременное нажатие единицы и двойки (в секунду по пять раз), до выхода из цикла (F2).
Мне цикл придётся время от времени менять, поэтому очень хотелось бы понять какие команды отвечают за задержку и какие именно строчки необходимо будет продублировать (с другой цифрой, например), что бы она добавилась в цикл.
« Последнее редактирование: Февраль 12, 2012, 15:18:35 от Грр »

Русское сообщество AutoIt

бесконечный цикл нажатия клавиш с задержкой
« Отправлен: Февраль 12, 2012, 14:39:47 »

Оффлайн Zaramot [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 1160
  • Репутация: 655
  • Пол: Мужской
  • I ♥ AutoIt
    • Награды
  • Версия AutoIt: 3.3.8.1
Re: цикл на клавиатуре
« Ответ #1, Отправлен: Февраль 12, 2012, 14:45:38 »
Так ?:
Код: AutoIt [Выделить]
HotKeySet('{F1}', '_F1')
HotKeySet('{F2}', '_F2')

Global $var = 0

While 1
    Sleep(100)
WEnd

Func _F1()
    $var = 0
    Do
        Send('{1}{2}')
    Until $var <> 0
EndFunc

Func _F2()
    $var = 1
EndFunc


Оффлайн Maalik [?]

  • Осваивающий
  • **
  • Сообщений: 74
  • Репутация: 33
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: цикл на клавиатуре
« Ответ #2, Отправлен: Февраль 12, 2012, 14:48:42 »
Код: AutoIt [Выделить]
Global $is_enabled = False ;// Создаем глобальную переменную

HotKeySet("{F1}", "_enable") ;// Опеределяем горячие клавиши
HotKeySet("{F2}", "_disable") ;//

;// Это наш главный цикл
While 1
   ;// Это проверка: ЕСЛИ $is_enabled = true то нажимать на клавиши
   if $is_enabled = True Then
         Send("1")
         Send("2")
         Sleep(100)
   EndIf
WEnd

;// это функция которая включает нажатие на клавишу
Func _enable()
$is_enabled = true;
EndFunc

;//Это функция которая выключает нажатие клавиши
Func _disable()
$is_enabled = false;
EndFunc

;// Обе эти функции просто меняют значение глобальной переменной $is_enabled
 

Думаю понятно объяснил)
Как насчет такого алгоритма?
« Последнее редактирование: Февраль 12, 2012, 14:54:31 от Microteam »

Оффлайн Грр [?]

  • Новичок
  • *
  • Сообщений: 5

  • Автор темы
  • Репутация: 0
    • Награды
Re: цикл на клавиатуре
« Ответ #3, Отправлен: Февраль 12, 2012, 14:52:24 »
супер, не ожидал, что так быстро напишите. Но тут кажется нет задержки. Можно как-то прописать, что бы каждое нажатие было раз в 0.1 секунду? wait какой-то...
Что бы не было лишнего спама кнопок :)
И подобный цикл в любом случае будет нагружать полностью одно ядро?
« Последнее редактирование: Февраль 12, 2012, 15:08:20 от Грр »

Русское сообщество AutoIt

Re: цикл на клавиатуре
« Ответ #3 Отправлен: Февраль 12, 2012, 14:52:24 »

Оффлайн madmasles [?]

  • Глобальный модератор
  • *
  • Сообщений: 7790
  • Репутация: 2317
  • Пол: Мужской
  • Награды За модерирование форума
    • Награды
  • Версия AutoIt: 3.3.x.x
Re: цикл на клавиатуре
« Ответ #4, Отправлен: Февраль 12, 2012, 15:13:06 »
ПредупреждениеЗа нарушение правил форума (пункт Б.5):
Цитировать
Имя темы должно нести смысловую нагрузку (отражать суть вопроса/проблемы)
Правильно сформулированное название темы привлекает больше внимания, и шансы получить конкретный ответ увеличиваются.

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

"цикл на клавиатуре" - это неприемлемое название темы, переименуйте тему иначе она будет закрыта, а вам возможно будет выдан бан на несколько дней.

С уважением, ваш Модератор.

Оффлайн Грр [?]

  • Новичок
  • *
  • Сообщений: 5

  • Автор темы
  • Репутация: 0
    • Награды
Либо, можно написать макрос переназначающий колесо мышки на нажатие опять же нескольких клавиш? Крутишь колесо - клавиши попеременно нажимаются...

Оффлайн Zaramot [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 1160
  • Репутация: 655
  • Пол: Мужской
  • I ♥ AutoIt
    • Награды
  • Версия AutoIt: 3.3.8.1
Цитировать
можно написать макрос переназначающий колесо мышки на нажатие опять же нескольких клавиш? Крутишь колесо - клавиши попеременно нажимаются...
Код: AutoIt [Выделить]
#include "MouseOnEvent.au3"

_MouseSetOnEvent($MOUSE_WHEELSCROLLDOWN_EVENT, "_Send")

While 1
    Sleep(100)
WEnd

Func _Send()
    Send('{1}{2}')
EndFunc


MouseOnEvent.au3:
http://www.autoitscript.com/forum/topic/64738-mousesetonevent-udf/

Оффлайн Грр [?]

  • Новичок
  • *
  • Сообщений: 5

  • Автор темы
  • Репутация: 0
    • Награды
последний скрипт выдаёт ошибки какие-то. Видимо, бибилиотека не подключена. Очень тяжело не разбираться в интересуемом вопросе :(

Русское сообщество AutoIt

Re: бесконечный цикл нажатия клавиш с задержкой
« Ответ #7 Отправлен: Февраль 12, 2012, 21:32:23 »

Оффлайн Zaramot [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 1160
  • Репутация: 655
  • Пол: Мужской
  • I ♥ AutoIt
    • Награды
  • Версия AutoIt: 3.3.8.1
Цитировать
Видимо, бибилиотека не подключена
Ниже примера я написал ссылку где можно скачать её.

Оффлайн Suicide_Loser [?]

  • Новичок
  • *
  • Сообщений: 1
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Есть     что    то     подобное,    только      для   2018   года?

Русское сообщество AutoIt

Re: бесконечный цикл нажатия клавиш с задержкой
« Ответ #9 Отправлен: Июнь 14, 2018, 21:09:34 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
5 Ответов
8218 Просмотров
Последний ответ Январь 07, 2012, 22:52:07
от Kaster
0 Ответов
1713 Просмотров
Последний ответ Январь 07, 2012, 19:39:49
от madmasles
73 Ответов
15210 Просмотров
Последний ответ Апрель 16, 2012, 18:51:06
от madmasles
4 Ответов
5948 Просмотров
Последний ответ Май 17, 2013, 14:42:05
от MnM
3 Ответов
1595 Просмотров
Последний ответ Декабрь 03, 2014, 21:27:11
от BlackRock
1 Ответов
980 Просмотров
Последний ответ Апрель 15, 2015, 20:49:23
от qqww22
6 Ответов
1788 Просмотров
Последний ответ Август 31, 2015, 14:02:22
от CreatoR
9 Ответов
1418 Просмотров
Последний ответ Сентябрь 30, 2015, 22:41:29
от InnI
7 Ответов
2025 Просмотров
Последний ответ Сентябрь 14, 2017, 21:31:04
от ra4o
4 Ответов
335 Просмотров
Последний ответ Апрель 27, 2018, 14:11:39
от joiner