Как сделать цикл в ahk

Добавил пользователь Alex
Обновлено: 05.10.2024

В програмировании шарю очень мало, в туторах тоже, но нахлебником на брокенкоре не буду, поэтому я покажу на примере, как написать скрипт на ахк начиная с дефолт макросов и биндов - заканчивая аимботом по пикселю. Эти знания полезны для всех игр и не только.
В целом способности у AHK огромные, но никак не нашлось еще подобного задрота что б произвел хороший аимбот также голосовое есп согласно считыванию сведений с звуковой карты.

Insert:: PoshelNaXY() //Биндим функцию на клавишу Insert
PoshelNaXY() // Задаем функцию
SendInput t//Посылаем нажатие клавиш t
Sleep, 250 //Ожидаем 250 миллисикунд пока откроется окно с чатом
SendInput Poshel //посылаем набор букв и клавишу Enter
>

Зачастую, что бы что-то было понятно и для общего комфорта иногда надо добавлять звуковые уведомления в скрипт.
Сделать это можно 2 способами:

SoundPlay, Media\shutdown.wav // проигрывает звук shutdown.waw из папки Media

Send, //посылаем пробел
Sleep,17 //ждем перед повторением цикла
>

ScriptActive = 0
F5::
If ScriptActive = 1 //переменная
ScriptActive = 0
SoundPlay, Media\deactivated.wav
>
else if ScriptActive = 0
ScriptActive = 1
SoundPlay, Media\activated.wav
>
return

далее в функцию суем
If ScriptActive = 1

Работает только в оконном режиме
Loop
PixelGetColor, Color, 18, 729 // cчитывает цвет пикселя по координатам 18,729 и записывает его в переменную Color

if Color = %Color1%
MouseClick, left, 100, 300 //посылаем клик левой кнопкой мыши по координатам 100, 300
>
Важно: координаты пикселей можно узнать с помощью AU3_Spy.exe в папке с AHK

Неплохо работает в кс 1.6, если использовать кастомные модели игроков, то будет работать и в csgo

TColor:=0xFFCC99 //цвета смотрим в AU3_spy.exe
HeadColor:=0x00ED00
CTcolor:=00009E

RButton:: //Если зажата правая кнопка мыши
Sleep 100
Loop
PixelGetColor, Color, 18, 729
if Color = %Color1%
Send
Send
>
GetKeyState,state,RButton,P
if state = U
break
MouseGetPos, mX, mY //записывает координаты мыши в переменные

PixelSearch, nX, nY, mX - 5, mY - 5, mX + 5, mY + 5, 0x00ED00, 100, Fast //nY, nX, mY, mX – углы квадрата на котором считываеются пиксели: 100 – возможное различие цвета, Fast — метод поиска (быстрый)
If ((nX != "") && (nY != ""))
Send,
>
>

Снова, только оконный режим. Рисует маленький квадратик по центру. Можно заменить картинкой используя SplashImage, pic.jpg

Gui Destroy
Gui, +AlwaysOnTop
Gui, Color, fffffa
Winset, TransColor, ff0000
gui, -caption
gui, +border
gui, show, w2 h2, crosshair

С интерфейсом можно и не заморачиваться, на сайте ahk есть AutoGUI, который является визуальным редактором.

LButton - левая кнопка
RButton - правая кнопка
MButton - средняя кнопка
WheelDown - колесико вниз
WheelUp - колесико вверх
XButton1 - боковая четвертая кнопка мышки
XButton2 - боковая пятая кнопка мышки
Space - пробел
Tab - таб
Enter/return - энтер
Escape/Esc - ескейп
Backspace/bs - та штука чтобы стирать символы
Delete/del - Delete
Insert/ins - Insert
Home
End
PgUp - Думаю понятно
PgDn
Up - Стрелочка вверх
Down -Стрелочка вниз
Left - Стрелочка влево
Right - Стрелочка вправо
ScrollLock
CapsLock - также думаю понятно
NumLock
NumpadDiv - "/"
NumpadMult - "*"
NumpadAdd - "+"
NumpadSub - "-"
NumpadEnter - энтер на нампаде
Клавиши когда Numlock выключен:
NumpadDel
NumpadIns
NumpadClear - как Numpad5
NumpadUp
NumpadDown
NumpadLeft
NumpadRight
NumpadHome
NumpadEnd
NumpadPgUp
NumpadPgDn
Клавиши когда NumLock включен:
Numpad0
Numpad1
Numpad2
Numpad3
Numpad4
Numpad5
Numpad6
Numpad7
Numpad8
Numpad9
NumpadDot - "Numpad . "
С F1 по F24
AppsKey - клавиша, вызывающая контекстное меню
LWin - левая клавиша "Windows"
RWin - правая клавиша "Windows"
Control/ctrl
Alt
Shift

Спойлер: Макрос на редакт построек в фортнайт, полезно и для других проектов (Вариант с выключенным автоподтверждением)

g:: // Клавиша на которую работает скрипт
loop, 1 // Повторение цикла
send // Нажатие клавиши на которую редактируется постройка
sleep 10
send
sleep 10
send
>
return

Спойлер: Макрос на редакт построек в фортнайт, полезно и для других проектов (Вариант с включенным автоподтверждением)

g:: // Клавиша на которую работает скрипт
loop, 1 // Повторение цикла
send // Нажатие клавиши на которую редактируется постройка
sleep 10
send
>
return

ProExTeam | AHK для SAMP & CRMP

ProExTeam | AHK для SAMP & CRMP

ProExTeam | AHK для SAMP & CRMP запись закреплена

АХК с повторением каждые 10 минут в конце с /time + F8
-----------------------------------------------------------------
Держите, не забудьте лайк поставить)

Artem Bruno

⛔

Балаби Куаныш


Балаби Куаныш

Алеша Феофилов


Алеша Феофилов

Тёма Липин


Тёма Липин

Здравствуйте, можно пожалуйста найти доброго человека, разбирающегося в программировании на ахк?! Можно, пожалуйста, кому-то отписать мне в лс, мне нужна ваша помощь.

Владислав Рассохин


Владислав Рассохин

Ваще топ! Для армии кайв посты даже скринить не надо! Я просто ушёл в афк на 2ч и получил изи повыху

AutoHotkey

AutoHotkey — фантастическая, но сложная часть программного обеспечения. Первоначально он был предназначен для привязки пользовательских горячих клавиш к различным действиям, но теперь это полный пакет автоматизации Windows.

AHK не особенно сложен в освоении для новых пользователей, так как общая концепция довольно проста, но это полный, полный по Тьюрингу язык программирования. Вы поймете синтаксис намного проще, если у вас есть опыт программирования или вы знакомы с концепциями.

Установка и использование AutoHotkey

новый скрипт autohotkey

Скрипты AHK — это текстовые файлы с расширением .ahk . Если вы щелкнете по ним правой кнопкой мыши, вы получите несколько вариантов:

скомпилировать скрипт autohotkey

Чтобы выйти, приостановить, перезагрузить или отредактировать сценарий, щелкните правой кнопкой мыши значок уведомления и выберите соответствующий параметр. Скрипты будут продолжать работать в фоновом режиме, пока вы не выйдете из них. Они также исчезнут, когда вы выйдете из Windows или перезагрузите компьютер, конечно.

скрипт autohotkey работает

Как работает AutoHotkey?

По своей сути AHK делает одну вещь — связывает действия с горячими клавишами. Существует множество различных действий, комбинаций горячих клавиш и управляющих структур, но все сценарии будут работать по одному и тому же принципу. Вот основной скрипт AHK, который запускает Google Chrome при каждом нажатии Windows + C:

Следующая строка — это действие. В этом случае действие запускает приложение с командой « Run . Блок заканчивается с return в конце. Вы можете иметь любое количество действий до return . Все они будут стрелять последовательно.

Точно так же вы определили простое сопоставление ключа к действию. Вы можете поместить столько файлов, .ahk файл .ahk и настроить его запуск в фоновом режиме, всегда ища горячие клавиши для переназначения.

Горячие клавиши и модификаторы

Вы можете найти полный список модификаторов AHK в официальной документации , но мы сосредоточимся на наиболее полезных (и интересных) функциях.

Вы можете объединить столько горячих клавиш, сколько хотите, в одну горячую клавишу, но у вас скоро закончатся комбинации клавиш для запоминания. Вот тут-то и появляются модификаторы, которые позволяют вам делать более сумасшедшие вещи. Давайте разберем пример из документации AHK :

директивы autohotkey

AutoHotkey также имеет горячие строки, которые функционируют как горячие клавиши, за исключением замены всей строки текста. Это похоже на то, как работает автозамена — фактически есть сценарий автозамены для AHK — но поддерживает любое действие AHK.

автозапчасти

Горячая строка будет соответствовать строке, только если она набрана точно. Он автоматически удалит сопоставленный текст, чтобы заменить горячую строку, хотя это поведение можно изменить.

действия

Действие в AHK — это все, что оказывает внешнее влияние на операционную систему. У АХК много дел. Мы не можем объяснить их все, поэтому выберем несколько полезных.

  • Отправка ввода , будь то текст или различные нажатия кнопок.
  • Перемещение мыши вокруг . На самом деле, AHK иногда ошибочно помечается как читерское программное обеспечение для видеоигр, так как люди сделали с ним полностью работающие прицелы.
  • Щелчок мышью с позиционированием относительно текущего окна.
  • Отображение диалоговых меню , в комплекте с формами и полями ввода.
  • Перемещение окон , изменение размера, открытие и закрытие.
  • Воспроизведение музыки .
  • Запись в реестр Windows . Да, действительно.
  • Изменение содержимого буфера обмена .
  • Чтение и запись файлов . Вы можете просматривать файлы и выполнять действия в каждой строке. AHK может даже писать в файлы .ahk и корректировать свой собственный код.

С большинством этих действий также связаны информационные команды. Например, вы можете записать в буфер обмена, но вы также можете получить содержимое буфера обмена для хранения в переменной и запуска функций при изменении буфера обмена.

Связывая все это со структурами управления

AHK не был бы тем, чем он является без всех структур управления, которые делают его полным по Тьюрингу .

Например, представьте, что у вас есть скучная, повторяющаяся задача, требующая, чтобы вы нажимали несколько кнопок подряд и ждали ответа сервера, прежде чем делать это снова и снова до бесконечности. Вы можете использовать AHK, чтобы автоматизировать это. Вы хотели бы определить несколько циклов, чтобы переместить мышь в определенные места, щелкнуть мышью, а затем перейти к следующему месту и щелкнуть снова. Добавьте несколько операторов ожидания, чтобы это не сломалось. Вы можете даже попытаться прочитать цвет пикселей на экране, чтобы определить, что происходит.

Одно можно сказать наверняка — ваш сценарий, вероятно, не будет красивым. Но ни AutoHotkey, и это нормально.

О самой программе

В программе бинды работают глобально по всему ПК, а имитация клавиш, взятая из AHK, может имитировать нажатия почти во всех приложениях.

В окне помощи можно найти все доступные функции, а вскоре там появятся и атрибуты для скриптов.

Все бинды можно сохранять в файл, чтобы не потерять.

В настройках можно включить запуск программы вместе с Windows, настроить открываемый по умолчанию файл биндов.


Синтаксис

Например вызов функции MsgBox (как и любой другой) выглядит так:


При выполнении этой строки будет такой результат:


MsgBox() принимает параметры, посмотреть их для каждой функции можно в окне помощи.

В помощи все функции отсортированы по типу возвращаемого значения:


Из этой строки можно понять ещё одну важную деталь: одни функции могут передаваться в параметры другим.

Помимо встроенных функций, в программе существуют различные конструкции. Следует отметить, что у меня любая целая конструкция считается как 1 команда, поэтому в конце каждой из них нужно ставить ;. Я уберу это позже.

Конструкция if-else.

Она работает точно так же как и в любом другом языке:


Можно писать сколько угодно else if, писать/не писать else, вообщем как угодно. Главное, чтобы в круглых скобках было типа Boolean. Например, можно туда написать true, и условие всегда будет выполняться.

Конструкция repeat

repeat — это самый простой цикл в программе, в круглых скобках должно быть значение типа Int, и он просто повторяет действия указанное число раз, например:

У него есть 2 модификации:

1) async repeat(). Под его выполнение выделится отдельный поток, т.е. сразу после его начала будут выполняться функции, стоящие после него.

2) allasync repeat() сразу запустит выполнение кода внутри себя указанное число раз, например:


Конструкция while

While — дословно с англ. — пока верно условие. Выполняет функции внутри себя до тех пор, пока верно условие в круглых скобках. Это условие должно быть типа Boolean.

Можно принудительно прервать выполнения цикла с помощью оператора break; Пример:

У while также есть модификация async while, которая просто выполняет его в отдельном потоке, позволяя продолжить выполнение основного кода.

Функции

В Binder можно объявлять и использовать свои функции и передавать в них параметры

Так же функции могут возвращать значения, для этого нужно использовать оператор return:

Читайте также: