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

Добавил пользователь Валентин П.
Обновлено: 17.09.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

Изображение

1. Перейдя по ссылке и скачав AutoHotkey, запускаем установщик. Перед нами всплывает такое окно. Выбираем "Custom Installation"

Изображение

2. Выбираем кодировку ANSI32 (Почему так объясню чуть ниже)

Изображение

3. Выбираем путь установки

Изображение

4. Выбираем нужные нам галочки (Я поставил только последнюю)

Изображение

5. Нажимаем Install, и получаем вот такое вот окно, которое уведомляет нас о том, что установка прошла успешно.

Возле часов выбираем "Языковая панель" - Параметры. - Язык ввода по умолчанию -> Английский (США). Всё, установка и настройка готова. Теперь главное сохранять все скрипты в кодировке ANSI (Об этом ниже)

Остаётся только написать под неё какой-нибудь скрипт и запустить его в работу.
Для этого на рабочем столе щёлкаем ПКМ (Правой кнопкой мыши) - Создать - AutoHotkey Script.
По создавшемуся файлу опять нажимаем ПКМ - Edit Script.
У нас открывается созданный скрипт в блокноте. Нам нужно его отредактировать под себя.
Для примера попробуем создать скрипт, который при нажатии клавиш Alt + 1 будет писать в OOC-Чат "Всем Привет"

Далее нажимаем Файл - Сохранить Как . И выбираем кодировку ANSI (Это важно, потому что при установке Хоткея мы выбрали кодировку ANSI)

Скрипт готов. Теперь мы запускаем его с рабочего стола по двойному клику, или же через ПКМ - Run Script

Итак, для начала, если вы хотите чтобы Скрипт срабатывал у вас только в GTA San Andreas Multiplayer, вам необходимо в начало скрипта поставить следующую строчку:


Данное сочетание при нажатии на Alt+= моментально выполнит 3 действия, а именно:
Примет предложение механика о заправке, починке и установки нитро. Количество функций можно увеличить (Вписать туда Immo, Firex и тд).

Ещё одной интересной функцией вам может показаться следующий пример:
Если вам нужно срочно что-то сделать (Например, дать звёзды какому-то игроку), и у вас нет времени открывать чат, вы можете воспользоваться данным скриптом:


Объясню как это работает. На пульт Силовиков поступила жалоба от игрока об убийстве. Я нажимаю Alt+1 и на клавиатуре ввожу ID игрока. Но при этом у меня не открывается чат, что очень удобно во время ведения погони.
Функция Input, Ysearch,L3 T5 C I, поддерживает написание 3х значного ID, и срабатывает сразу же после его ввода. Если ID игрока двух/однозначный, то нам необходимо после написания ID либо подождать секунду, либо нажать на клавиатуре Enter, чтобы скрипт приступил в исполнение раньше.

Вот ещё пара примеров использования похожих скриптов:


При нажатии сочетания клавиш Ctrl+Alt+NumPad1 у меня запускается в действие скрипт, который вводит команды /locrep и /direct. И всё что нужно мне после его запуска - нажать на цифры, соответствующие ИДу игрока, и в случае надобности нажать на Enter.


Данный скрипт при нажатии сочетания клавиш Ctrl+NumPad8 заберет сразу наркотики, материалы, пакеты материалов у нужного мне игрока

Ну и напоследок моё любимое:


При нажатии клавиш Alt+NumPad3 скрипт предупредит игроков о проверке, и проверит документы и лицензии нужного мне игрока.

Я бы хотел, чтобы AutoHotkey автоматически определял, когда появляется определенное всплывающее диалоговое окно, и предпринимал определенные действия. Как я могу это сделать?

Конкретный пример

Это рабочий процесс:

  1. Я обновляю заголовки в моем документе Word
  2. Я нажимаю Ctrl + A, чтобы выбрать весь документ
  3. Я нажимаю F9, чтобы обновить все поля


Это раздражающее модальное диалоговое окно появляется (который не может быть настроен согласно моим поискам Google)

Теперь мне нужно нажать стрелку вниз, чтобы выбрать Обновить всю таблицу, а затем Enter, чтобы нажать Ok и продолжить.

Конечно, поскольку я запускаю рабочий процесс, я могу просто написать скрипт AutoHotkey, который сделает все за меня, начиная с Ctrl + A, например:

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

Мои исследования до сих пор

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

Следующий фрагмент кода скопирован отсюда.

часть. Что делает весь отдых?

2 ответа 2

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

SetBatchLines, -1 и Process, Priority,, High говорят, что ваш скрипт очень важен и должен работать на полной скорости все время, и никакой другой системный процесс никогда не должен его замедлять.

Gui +LastFound и hWnd := WinExist() находят уникальный идентификатор этого скрипта при его запуске, чтобы его можно было зарегистрировать в Windows в последующем DllCall .

Для эффективного кода, который не опрашивает и является более отзывчивым, вы можете адаптировать код здесь:

В установочной части файла добавьте эти операторы:

Убедитесь, что между столбцами в этой части настройки скрипта есть вкладки (а не пробелы, в зависимости от используемого вами редактора). Имя exe также чувствительно к регистру, так как оно использует сопоставление RegEx, если вы не измените его.

Затем этот код записывается в теле скрипта .

Вы также можете использовать фрагмент, который вы разместили . это в основном то же самое.

Возвращаемые значения:
Данная функция не возвращает какого-либо конкретного значения.

Стили диалога:

0DIALOG_STYLE_MSGBOXОбычный диалог с 2-мя кнопками
1DIALOG_STYLE_INPUTДиалог с полем для ввода
2DIALOG_STYLE_LISTСписок из нескольких элементов
3DIALOG_STYLE_PASSWORDПозволяет игрокам вводить пароль не раскрывая его

Упрощение:
Обычно, чтобы не запоминать цифры и не писать длинное название стилей диалогов, я заменяю их такими макросами:

Или можно использовать стиля диалогового окна

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

\bbackspaсe
\fForm feed
\nПереход на новую строку
\rВозврат каретки
\tТабуляция
\vВертикальная табуляция
\'Одиночная кавычка
\"Двойные кавычки
\?Вопросительный знак

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

Пример диалога с использование условной конструкцией

Создадим команду с использование ZCMD (командный процессор)

Креативизация:
Вы решили создать диалог, а он серы и скучный?
Мы можем раскрасить наш диалог в любые цвета формата RGB.
Пример:

Цвет мы заключаем в фигурную скобку "<" и ">"
FFFFFF - это белый цвет
3DB6F2 - светло-голубой
Думаю цвета вам не доставит большого труда отыскать. Для этого есть множество поисковых система.

Что же такое этот оператор switch?
Оператор switch – это оператор выбора. Он удобен в первую очередь тем, что может заменить много условий if, которые проверяют значение одной переменной.
Пример построения с этим оператором:

! Стоить отметить, что в официальной документации к языку написано: ‘In pawn, switch is a structured “if”‘, а это значит, что конструкция switch — это набор структурированных if’ов, отсюда следует, что switch не может работать быстрее if. Но это не всегда так.

Скрипты AutoHotkey — отличный способ автоматизировать некоторые действия на компьютере, но на первый взгляд эта программа может показаться сложной. Не волнуйтесь — начать гораздо проще, чем кажется! Читайте дальше, чтобы увидеть как пользоваться AutoHotkey.

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

Скрипты могут иметь графический интерфейс для показа информации и ввода настроек.

У AutoHotkey очень развитый скриптовый язык, но вам необязательно его изучать — вы можете воспользоваться готовыми скриптами.


Там представлено несколько несколько версий, разберёмся в них:

  • AutoHotkey 1.1.* - это актуальная версия, которая активно разрабатывается. Ранее была известна как AutoHotkey_L.
  • AutoHotkey 1.0.* - развитие этой версии остановлено несколько лет назад, ранее была известна как AutoHotkey Basic, Classic, Vanilla.
  • AutoHotkey 2.0-a* - альфа выпуск новой версии AutoHotkey v2.

Ветка AutoHotkey 2.0-a* является работоспособной, но в ней поменялся синтаксис языка по этой причине большинство готовых скриптов, которые вы можете найти в Интернете, в ней работать не будут.

Скачайте установщик, им проще пользоваться, чем портативной версией.

Установка AutoHotkey

Запускаем установочный файл:



Как запустить AutoHotkey

Необычность AutoHotkey в том, что нет смысла запускать программу без скрипта — в этом случае будет показана только справка.

Порядок запуска AutoHotkey следующий:

1. Сохранение скрипта в файл с расширением .ahk

2. Запуск этого файла — в этом случае автоматически откроется AutoHotkey и выполнит скрипт

По этой причине предпочтительнее скачать установочный файл, а не портативную версию, поскольку для портативной версии придётся вручную настраивать ассоциацию с файлами .ahk.

Скрипты AutoHotkey

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



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


Некоторые сценарии содержат не только несколько строк; они часто предлагаются в виде файлов, а не вставляются на страницу. Щёлкните правой кнопкой мыши ссылку на файл AHK и выберите, чтобы сохранить его локально:

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

Опять же, убедитесь, что вы сохранили его как файл .ahk.

Запуск скрипта AutoHotkey

Теперь у вас должен быть файл .ahk в вашей системе, и AutoHotkey — всё настроено и готово к работе. Просто дважды щёлкните файл AHK, чтобы запустить его.

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

Если скрипт AutoHotkey не работает

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

Выход из скрипта


Где скачать скрипты AutoHotkey

Скрипты AutoHotKey для CS:GO

Bhop (распрыжка) — это крутой скрипт для отработки упражнений, когда вы освоите его, подумайте о распрыжке с колесом прокрутки.

F11 для включения и отключения. Кнопка End дял полного отключения.

VAC вас НИКОГДА не обнаружит.

Autofire

Autofire не очень практичен для конкурентного игрового процесса, но с DM и Casual это интересно.

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

Чтобы поставить скрипт на паузу нажмите F6.

Ultimate CS:GO Multiscript

Это НЕ чит, он не будет вводить или делать что-либо с CS:GO, он просто симулирует события мыши/клавиатуры.

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