как зациклить ахк скрипт
AHK: Скрипт для зацикливания клавиш
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Сообщения 7
1 Тема от Gutalin 2018-01-23 00:14:28 (изменено: Gutalin, 2020-02-24 20:02:39)
Тема: AHK: Скрипт для зацикливания клавиш
В прикреплённом архиве содержится скомпилированный скрипт и 2 картинки замка для не скомпилированного кода (картинки скопировать в %A_Temp%\Биндик\).
Если вы работаете с ahk файлом:
1)Создайте папку;
2)Переместите в неё ahk файл данного скрипта;
3)Поместите туда же библиотеку для Hotkey от serzh82saratov версии 2.06 под названием Hotkey.ahk ;
В скомпилированной версии (exe файл) данной процедуры проводить не нужно!
ini файл хранит в себе настройки программы и находится в директории(папке) со скриптом. Чтобы настройки не сбросились его лучше не удалять!
v0.1 (08.08.18)
— Ini файл создаётся сам, если его нет;
— Ini файл можно перезаписать.
v0.2 (09.08.18)
-Убраны кнопки «+» и «-» для большей стабильности (Всегда отображается возможность выбрать 2 кнопки);
-Скрипт сам определяет нажатые кнопки.
v0.3 (10.08.18)
-Убраны лишние строки из кода;
-Использована библиотека для Hotkey от serzh82saratov;
-Убраны кнопки «Сохранить» и «Отмена». Теперь всё сохраняется во время ввода данных.
v0.5 (12.08.18)
-Добавлена блокировка ввода (вкл\выкл на замочек);
-Улучшение самого кода;
-Мелкие улучшения интерфейса.
v1.0 (14.08.18)
-Доработан скрипт зацикливания для сочетаний клавиш.
-Мелкие улучшения интерфейса.
v1.2 (16.08.18)
-Добавлена возможность ставить на паузу;
-Убран значок в трее за ненадобность;
-Добавлен индикатор работы скрипта. (Поверх всех окон);
-Убрана возможность блокировки ввода во время работы скрипта (после нескольких вкл\выкл скрипта он зависал).
v1.3 (17.08.18)
-Добавлена возможность вкл\выкл индикатор в меню Помощь>Настройки;
-Меню «Сбросить ini файл» перенесено в Помощь>Настройки;
-Мелкие улучшения интерфейса.
v1.4 (20.08.18)
-Исправления в работе скрипта;
-Вернулась блокировка ввода;
V1.5(01.12.18)
-Улучшение ввода значения задержки;
-Добавлена возможность настройки зацикливания в определённое окно;
-Небольшие изменения интерфейса.
V1.6(03.04.19)
-Добавлена возможность изменения размера индикатора работы скрипта;
-Изменено расположение ini файла (теперь в директории скрипта);
-Отказ от интеграции в код простым копированием библиотеки Hotkey.ahk от serzh82saratov. Теперь это работает как и должно подразумеваться;
-Отформатирован код с целью улучшить его читаемость (может и до переменных дойду);
V1.7(04.04.19)
-Исправление багов;
-Улучшение интерфейса;
v1.8(24.02.2020)
-Новый интерфейс настроек;
-Добавлена возможность самому задать клавиши Старт/Стоп/Выход из программы;
-Добавлена возможность более точно настроить время;
-Убрана пауза;
2 Ответ от svoboden 2018-01-23 00:28:06 (изменено: svoboden, 2018-01-23 03:24:31)
Re: AHK: Скрипт для зацикливания клавиш
Забыли Readme.txt еще написать. А если серьезно, то для новичка, наверное, будет полезна данная высокоинтеллектуально развитая программа.
3 Ответ от Gutalin 2018-01-23 00:31:57 (изменено: Gutalin, 2018-08-12 21:11:16)
Re: AHK: Скрипт для зацикливания клавиш
svoboden, если кто не хочет изучать AHK, а просто зациклить пару клавиш. Правда моя программа очень, очень узко раскрывает функционал AHK, но для единичного дела подойдёт.
4 Ответ от stealzy 2018-01-23 17:08:49 (изменено: stealzy, 2018-01-23 17:26:43)
Re: AHK: Скрипт для зацикливания клавиш
Поставить таймер на отправку неких клавиш можно так:
Если делать с возможностью отключения таймера и установки горячих клавиш код становится сложнее, потому что надо сохранять состояния и проверять их.
Исходник Гайд AUTOHOTKEY | Loop, * | Циклы
BASS_DEVSOFTWARE
Малость теории: циклом может называться любая многократно исполняемая последовательность инструкций, организованная любым способом.
Закончили теорию.
Цикл заключаем в < и >скобки, выглядит это дело примерно так:
Loop, Read лучший аналог FileReadLine, так как первый вариант один раз открывает файл и держит его открытым во время цикла, в отличии от второго, который открывает, читает и закрывает.
Строка выглядит таким образом:
Читаемый файл так же можно указать в виде переменной.
Во время работы цикла, читаемые строки содержатся в переменной цикла %A_LoopField%.
Чтение под строк через Loop, Parse
Loop, Parse позволяет читать содержимое каждой строки через разделители и убирать неугодные нам слова/символы, если нам это нужно.
Рассмотрим простой пример:
Название файла цикла помещено в переменную A_LoopFileName
Loop, FilePattern позволяет вычислять размер файла, дату изменения, дату последнего запуска и т.д. Больше в таблице ниже:
1.txt. Однако, если FilePattern содержит не абсолютный, а относительный путь, то путь здесь тоже будет относительным.
Визуально представим нашу папку, в ней будут следующие файлы:
Цикл с условием, я говорю о While-Loop
В цикле можно указать любое условие или функцию.
For Key, Value in Expression
For loop позволяет нам обрабатывать условие в цикле с несколькими переменными.
Содержание переменных остаётся неизменными, во время работы цикла.
Ниже представлю таблицу с переменными, которые существуют в цикле:
Метка должна быть непосредственно В цикле или НАД ним.
Пример, который может наглядно показать суть и применение continue и break.
На этом, пожалуй, мы закончим.
Отдельная благодарность ресурсу ahk-wiki.ru за помощь.
@arsh12344
Добавлен пример для For, Loop
@Belo4ka_belka
Помощь с табуляцией и For, Loop
Спасибо вам огромное!
Любые вопросы можете задавать в данной теме и просьба БЛАГОДАРИТЬ тех, кто вам поможет своим ответом.
Курс по AutoHotKey #5 | Циклы.
Lance Whisky
Информационные технологии Diamond RP
Привет, я бы хотел сегодня поговорить про довольно важную тему. В языках программирования циклы используют для упрощения большого, но одинакового кол-ва строк кода. Другими словами, цикл будет работать до тех пор, пока вы его сами не остановите. Как заставить это работать?
В данном случаи, код будет выполнен до тех пор, пока не насчитает 10. Всё просто. Вы просто пишите кол-во кругов после цикла.
В АНК существует так называемые метки. Это как сохранение в компьютерной игре.
Вы можете поставить в любом месте кода метку, и по нажатию клавиши, или по-другому, вернуться на это место.
Чтобы установить метку, нужно назвать её и поставить одно двоеточие, а, чтобы попасть на метку, используйте функцию goto * название метки * ( на метки нет ограничений )
Вот пример цикла, с помощью меток.
Но заметьте, что A_Index там уже не работает, можно использовать переменные, я думаю вы их ещё помните.
Циклы можно использовать много где, в оптимизации например, так делали раньше флудеры всякие. Замечу ещё, что я не использовал var как глобальную переменную, как вы помните зона видимости позволяет достать до этого момента.
1 Задание: Сделайте окно, которое будет считать до 10, в чате сампа, красным цветом. Методом Loop’a.
2 Задание: Сделайте цикл методом меток, и после того, как переменная будет ровняться 14, ваша программа будет закрываться. )
Alan Arbatskiy
Активный пользователь
— 0. Вступление
Скачать биндер можно на оффициальном сайте: https://www.autohotkey.com/
После полной установки программы, нажмите ПКМ по свободному месту в папке/на рабочем столе и в разделе «Создать» выберите «AutoHotKey Script».
После этого нажмите ПКМ по созданному файлу и выберите пункт «Edit Script». В открывшемся окне можете стереть примечание от автора и начать писать свой шедевр.
— 2. Автоматическое определение языка и раскладки клавиатуры.
Данный шаг Вы можете пропустить, но тогда при неправильной раскладке клавиатуры вместо красивого текста, который вы расписывали несколько десятков минут, в чат будут отправляться сплошные вопросительные знаки, так как скрипт не будет видеть на вашей текущей раскладке бо’льшую часть нужных для набора текста символов. Во избежание этих проблем, настоятельно Вам рекомендую на следующей строке, после назначение горячей клавиши, прописать следующее:
SendMessage, 0x50,, 0x4190419,, A
Также немаловажно задать паузы между сообщениями, иначе программа может сойти с ума и начать смешивать ваши сообщения в единое целое.
Так, прописав команду Sleep и число миллисекунд после нее (1000 = 1 секунда), Вы задаете задержку между выполнениями следующих команд.
Рекомендую использовать задержку 700 между отыгровками /me /do /todo, и 1000 между сообщениями в чат (IC, /b), дабы антифлуд не триггерился на ваш скрипт. (насколько мне известно, в /f /c задержку можно ставить 200, там антифлуд почти не срабатывает).
— 4. Окончание скрипта
После того, как вы прописали все сообщения, не забудьте написать завершающую команду Return, которая останавливает чтение макроса. Иначе, если у Вас в одном файле сразу несколько скриптов, последствия будут неутешительными.
[ Работает ] [Гайд][AHK] Учимся создавать скрипты с AutoHotKey (на примере BDO)
Статьи и гайды по Black Desert: Раздел со статьями для BDO не обязательно читерской тематики. |
[Гайд][AHK] Учимся создавать скрипты с AutoHotKey (на примере BDO)
Доброе время суток, друзья!
Сегодня я расскажу Вам об основах создания и использования скриптов, используя AutoHotKey! 🙂
В этой ветке много макросов на Bloody, однако лично мое мнение, что блуди не удобная штука. Ну тут каждому на свой вкус.
Далее по тексу саму программу и скриптовый язык AutoHotKey я буду называть AHK или АХК.
Создаем пустой скрипт.
После того как Вы внесли какой либо код в скрипт, сохраняем его и запускаем от имени администратора.
Давайте рассмотрим основные команды (те, которые я чаще всего использую).
Обратите внимание, что ПОЛНЫЙ синтаксис команд с примерами представлен на официальном сайте autohotkey.com
В АХК конец предыдущей команды обозначается концом прошлой команды, переносом на следующую строку, либо завершением <блока команд>. Я представляю насколько непонятно это выглядит, однако я думаю чуть дальше вы поймете.
В первую очередь я Вам советую в скрипт вписывать несколько строк, которые в случае Вашей ошибки\недоработки позволят отключать скрипт. Например, если Вы поставили нажиматься Alt+F4 каждые 0.1 секунд. Короче если вы не можете остановить скрипт мышкой, чтоб мы могли это сделать кнопкой.
Что это такое? При нажатии на F11 у нас будет выполнена команда pause, которая запаузит скрипт. При повторном нажатии скрипт продолжит работу с того места, где закончил. При нажатии F12 соответственно скрипт будет перезагружен совсем. 🙂 На заметку: если вы изменили код скрипта, сохранили, то при нажатии на f12 будет загружен уже измененный скрипт. Это удобно когда вы только создаете\отлаживаете скрипт.
Эту строку я советую тоже вставлять во все скрипты, где у Вас будут использоваться координаты. (ну например нажать мышкой на крестик в ворде 🙂 ). Дело в том, что в этом случае координаты будут смотреться не относительно вашего разрешения(монитора), а относительно текущего окна. Т.е. если у вас игра\ворд запущены не в полное окно, то вы можете их двигать куда угодно, координаты будут одинаковы.
Далее. Привязка действий к клавишам. Существует список кучи модификаторов. Я приведу основные:
При нажатии сочетания ALT и цифры 1 у нас выведется пустое окошечко.
Таким же образом привязываются абсолютно все действия.
Если у Вас больше одной команды, то я советую заключать их в <>.
Как это будет выглядеть?
В данном случае у нас будут появляться два окошечка последовательно. Но это лишь пример.
Далее рассмотрим одну из самых важных команд: Send, SendPlay, SendInput. Эти команды нужны нам, чтобы посылать какие-то тексты и\или кнопки в игру. Первая делает это чуть медленнее, однако работает всегда. Вторая и третьи(предпочтительна вторая) делают отправку мгновенно.
Важно! Если вы хотите послать отправку КНОПКИ, а не ТЕКСТА, то вы должны заключить кнопку в <>.
Пример: нам нужно отправить строку объявления в игровой чат мгновенно, чтоб оно не мешало нам фармить.
Все знаки пунктуации нужно заключать в <>.
Теперь при нажатии Ctrl+1 у нас отправится объява в чат, причем скорее всего мы даже не успеем заметить как открылся чат.
При нажатии Ctrl+2 мы гарантированно изменим чат на Общий, после чего напишется строка и остановится на «Цена:» но не отправится, там мы сможем ввести цену. Ну я надеюсь суть вы поняли 🙂
При нажатии на Пуск+1 у нас зажмется шифт на 2 секунды.
Теперь попробуем разобраться с мышкой.
При нажатии на Альт+NumPad0 у нас произойдет «клик» левой кнопкой по координатам 5 5.
При нажатии Альт+NumPad1 у нас произойдет клик правой кнопкой по 10 10, через секунду правая кнопка зажмется на полсекунды.
Как нам собирать эти координаты? Я пользуюсь двумя способами. Первый: запускаем любой скрипт, в трее нажимаем правой кнопкой, потом Window Spy. Откроется окошечко
Нас интересует строка In Active Window:
Второй: использовать код, который будет показывать нам координаты при нажатии на кнопочку.
Разберемся с циклами. То есть со случаями, когда нам нужно одно и то же действие повторить много раз.
Например, нам нужно кормить кота каждые пять минут.
после ; мы можем писать комментарии.
В случае, когда нам нужно повторить действие определенное количество раз, просто после Loop, ставим цифру сколько раз:
У нас отправиться 10 нажатий
Ну вот наверное и всё, из основного 🙂 Теперь перед Вами всё ограничено лишь воображением.
Я прошу Вас задавать вопросы, если появятся, а также сказать, надо ли что-то еще добавить в гайд? 🙂