Как сделать сочетание клавиш в ahk

Добавил пользователь Валентин П.
Обновлено: 04.10.2024

Let's help each other out

  • It is currently 28 Jan 2022, 19:52
  • All times are UTC-05:00

Сочетание клавиш в АХК. Хелп

1 post • Page 1 of 1

dreamstate Posts: 1 Joined: 29 Jun 2020, 14:24

Сочетание клавиш в АХК. Хелп

Доброго времени суток, помогите пожалуйста написать не сложный скрипт, мне нужно что бы при зажатии сочетаний клавиш допустим shift + 1 зажималась эта комбинация клавиш. Точно так же с ctrl, alt.
Просто зажимать кнопку у меня получилось сделать, а вот что бы зажималось вместе с шифтом/контролом и альт к сожалению моих знаний не хватило. В игре просто спамится кнопка которая у меня в АХК, при зажатии Шифта, допустим, кнопка не спамится.
пример того что у меня есть:

Как создать пользовательские сочетания клавиш с помощью AutoHotkey

Есть некоторые вещи, которые просто больно печатать, особенно когда вам приходится набирать их снова и снова. Или, что еще хуже, если вы хотите напечатать текст на клавиатуре. Что вы делаете, если используете американскую клавиатуру и должны отказаться от документа?

У меня была эта проблема. Меня раздражало, и еще хуже, я делал ошибки. Мне нужно было сдержать раздражение и убедиться, что эти однообразные вещи, которые я должен был набирать, были последовательными и правильными. Охота продолжалась для решений. Оказывается, есть один ответ на обе проблемы: AutoHotKey.

Что такое AutoHotkey?

Как установить AutoHotkey

ПРИМЕЧАНИЕ. Некоторые антивирусные программы будут отмечать AutoHotkey как вредоносное ПО. Это ложный позитив. AutoHotkey чрезвычайно эффективен, и хотя он не опасен сам по себе, это язык сценариев, что означает, что вы можете создавать вредоносное ПО с ним, если у вас есть желание. Но не беспокойтесь о загрузке базовой программы AutoHotkey; это не повредит вашему компьютеру.





После того, как он будет установлен, вы готовы добраться до забавного материала: написав свой первый скрипт.

Как создать свой первый скрипт AutoHotkey

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


Вам будет предоставлен почти пустой сланец, чтобы вы могли создавать быстрые клавиши вашей мечты. Вот несколько примеров.

Начнем с реального простого скрипта ввода символов. У меня есть сценарий, который я использую каждый день, чтобы разрешить мне вводить общие символы с немецкого языка, которые не находятся на моей английской клавиатуре. Скажем, я хочу набирать символ ß всякий раз, когда я нажимаю Alt + Shift + S на своей клавиатуре. В AutoHotkey это будет выглядеть так:

Давайте сломаем этот бит текста вниз:

Вы можете добавить и другие модификаторы. Например, если вы добавили символ , вы можете сказать AutoHotkey только запустить команду, если используется клавиша Left Alt.


Если вы знаете имя персонажа, которого хотите добавить в свой скрипт, поиск его в Google, вероятно, самый быстрый способ его найти. Если нет, вы можете найти его в таблице ASCII или Unicode.


Это может быть сделано с помощью горячей клавиши вместо hotscript. Вы можете заменить :*:ncm в скрипте с !+n и вы увидите одну строку текста, нажав Alt + N на клавиатуре.

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


Если вы запустите этот скрипт, AutoHotkey сбросит текущую дату в любом месте вашего курсора. Вы можете играть с такими вещами, как форматирование (dd / MM / yyyy против MM / dd / yyyy, например) в скрипте.

Далее: запуск программ, быстрые ссылки и многое другое.

AutoHotkey может делать гораздо больше, чем вставлять текст (хотя это одно из его более общих применений). Вы также можете использовать его для запуска программы, когда вы нажимаете определенный ключ, переназначаете shortucts, такие как Alt + Tab, на горячие клавиши по вашему выбору или кнопки переназначения на вашей мыши. Если вы действительно глубоко, вы можете создавать диалоговые окна или полноценные программы с помощью AutoHotkey.

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

Сегодня я расскажу Вам об основах создания и использования скриптов, используя AutoHotKey! :)
В этой ветке много макросов на Bloody, однако лично мое мнение, что блуди не удобная штука. Ну тут каждому на свой вкус.

Далее по тексу саму программу и скриптовый язык AutoHotKey я буду называть AHK или АХК.

Итак, приступим!

Качаем >> autohotkey отсюда

Создаем пустой скрипт.


(также будет работать, если переименовать .txt в .ahk )

Что же нам делать дальше?
Давайте рассмотрим две ситуации! :) Мы можем создать скрипт, который будет одноразово при запуске выполнять какие-то действия. Например, при запуске .exe выполняется действие по копированию ярлыка из одного места в другое. В таком случае нам не нужно привязывать какую-либо кнопку к этому действию. Второй же вариант, когда мы запустили скрипт, затем нажали кнопку и у нас произошло то же самое действие.

После того как Вы внесли какой либо код в скрипт, сохраняем его и запускаем от имени администратора.

Давайте рассмотрим основные команды (те, которые я чаще всего использую).

В АХК конец предыдущей команды обозначается концом прошлой команды, переносом на следующую строку, либо завершением . Я представляю насколько непонятно это выглядит, однако я думаю чуть дальше вы поймете.

В первую очередь я Вам советую в скрипт вписывать несколько строк, которые в случае Вашей ошибки\недоработки позволят отключать скрипт. Например, если Вы поставили нажиматься Alt+F4 каждые 0.1 секунд. Короче если вы не можете остановить скрипт мышкой, чтоб мы могли это сделать кнопкой.

Что это такое? При нажатии на F11 у нас будет выполнена команда pause, которая запаузит скрипт. При повторном нажатии скрипт продолжит работу с того места, где закончил. При нажатии F12 соответственно скрипт будет перезагружен совсем. :) На заметку: если вы изменили код скрипта, сохранили, то при нажатии на f12 будет загружен уже измененный скрипт. Это удобно когда вы только создаете\отлаживаете скрипт.

Эту строку я советую тоже вставлять во все скрипты, где у Вас будут использоваться координаты. (ну например нажать мышкой на крестик в ворде :) ). Дело в том, что в этом случае координаты будут смотреться не относительно вашего разрешения(монитора), а относительно текущего окна. Т.е. если у вас игра\ворд запущены не в полное окно, то вы можете их двигать куда угодно, координаты будут одинаковы.

Далее. Привязка действий к клавишам. Существует список кучи модификаторов. Я приведу основные:

При нажатии сочетания ALT и цифры 1 у нас выведется пустое окошечко.
Таким же образом привязываются абсолютно все действия.
Если у Вас больше одной команды, то я советую заключать их в <>.
Как это будет выглядеть?

В данном случае у нас будут появляться два окошечка последовательно. Но это лишь пример.

Все знаки пунктуации нужно заключать в <>.
Теперь при нажатии Ctrl+1 у нас отправится объява в чат, причем скорее всего мы даже не успеем заметить как открылся чат.
При нажатии Ctrl+2 мы гарантированно изменим чат на Общий, после чего напишется строка и остановится на "Цена:" но не отправится, там мы сможем ввести цену. Ну я надеюсь суть вы поняли :)

Пример: Нам нужно зажать шифт на 2 секунды.
Здесь мы используем 2 новых штучки.
Sleep - данная команда является просто таймером-разделителем между командами.
Формат:
Sleep, 1000 - это будет задержка 1 секунда
Нажатие и "отпускание" клавиши.
- данная "клавиша-команда" зажмет клавишу W.
- соответственно отожмет клавишу S.

При нажатии на Пуск+1 у нас зажмется шифт на 2 секунды.

Теперь попробуем разобраться с мышкой.

При нажатии на Альт+NumPad0 у нас произойдет "клик" левой кнопкой по координатам 5 5.
При нажатии Альт+NumPad1 у нас произойдет клик правой кнопкой по 10 10, через секунду правая кнопка зажмется на полсекунды.


Как нам собирать эти координаты? Я пользуюсь двумя способами. Первый: запускаем любой скрипт, в трее нажимаем правой кнопкой, потом Window Spy. Откроется окошечко

Нас интересует строка In Active Window:

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

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

Например, нам нужно кормить кота каждые пять минут.
после ; мы можем писать комментарии.

В случае, когда нам нужно повторить действие определенное количество раз, просто после Loop, ставим цифру сколько раз:

Ну вот наверное и всё, из основного :) Теперь перед Вами всё ограничено лишь воображением.
Я прошу Вас задавать вопросы, если появятся, а также сказать, надо ли что-то еще добавить в гайд? :)

Правильно используем программу AutoHotKey

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

Работа с клавиатурой

Специальные клавиши

::бгф::берегись, кинул гранату, это флешка

Имитируем клики мышкой

С кликами мышкой работать несколько сложнее, чем с использованием клавиатуры, так как здесь помимо кнопок есть еще и определенное месторасположение курсора, которое нужно указывать. В связи с этим пользователь сначала должен определить координаты X и Y того места на экране, куда должно отправляться созданное событие. Делается это при помощи встроенной в программу утилиты под названием Active Window Info.

Правильно используем программу AutoHotKey

Выглядеть все это может примерно так:

Команда может выглядеть примерно следующим образом:

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

В програмировании шарю очень мало, в туторах тоже, но нахлебником на брокенкоре не буду, поэтому я покажу на примере, как написать скрипт на ахк начиная с дефолт макросов и биндов - заканчивая аимботом по пикселю. Эти знания полезны для всех игр и не только.
В целом способности у 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

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