Для установки нажмите кнопочку Установить расширение. И это всё.

Исходный код расширения WIKI 2 регулярно проверяется специалистами Mozilla Foundation, Google и Apple. Вы также можете это сделать в любой момент.

4,5
Келли Слэйтон
Мои поздравления с отличным проектом... что за великолепная идея!
Александр Григорьевский
Я использую WIKI 2 каждый день
и почти забыл как выглядит оригинальная Википедия.
Статистика
На русском, статей
Улучшено за 24 ч.
Добавлено за 24 ч.
Что мы делаем. Каждая страница проходит через несколько сотен совершенствующих техник. Совершенно та же Википедия. Только лучше.
.
Лео
Ньютон
Яркие
Мягкие

Из Википедии — свободной энциклопедии

AutoHotkey — свободно распространяемый язык для автоматизации выполнения задач в Microsoft Windows.

AutoHotkey является языком программирования сценариев (скриптов), приспособленным к лёгкому назначению и переназначению горячих клавиш, включая кнопки мыши и джойстика. Скрипты представляют собой текстовые файлы, с расширением «.ahk». В комплект поставки входит утилита, позволяющая «скомпилировать» их в EXE файлы, и запускать на любом компьютере с ОС Windows, при этом в создаваемый файл могут быть включены другие файлы, извлекаемые при запуске.

AutoHotkey позволяет автоматизировать задачи пользователя Windows таким образом, какой невозможен или затруднён в других языках программирования. Кроме того, этот язык компактен, самодостаточен и работает на всех версиях Windows «прямо из коробки».

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

Также имеются возможности создания GUI, отправки и приёма оконных сообщений, вызова функций DLL, обработки текста при помощи регулярных выражений.

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

В настоящее время развитие изначальной ветки — AutoHotkey 1.0 (впоследствии названной AutoHotkey Basic, Classic, Vanilla) — прекращено её создателем Chris Mallett'ом. Официальный наследник — AutoHotkey 1.1 (AutoHotkey_L) — развивается силами сообщества во главе Steve Gray (Lexikos) и fincs, эта версия предоставляет поддержку Юникода, 64-разрядной архитектуры, массивов, объектов с прототипным конструированием, а также COM и элементов управления ActiveX в GUI.

Пользователь с псевдонимом tinku99 разработал пользовательскую сборку AutoHotkey_N, позволяющая встроить интерпретатор AutoHotkey в другое приложение или язык. Он обеспечивает функциональность AutoHotkey, которую может быть сложнее реализовать на другом языке.

Пользователь с псевдонимом HotKeyIt почти в то же время выпустил на базе AutoHotkey_N свой версию AutoHotkey_H, помимо интеграции через dll, ее можно было использовать и через COM. Также была попытка реализовать защиту кода, что достигалось благодаря криптографии и антиотладочным приемам. По некоторым данным на Windows 10 наблюдается нестабильность запуска.

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

О языке

Возможности языка включают:

  • Совместимость с Windows XP / 2003 / Vista / 2008 / 7 / 2008 R2 / 8 / 8.1 / 2012 / 10
  • Версия для 64-битных систем.
  • Поддержка Юникода.
  • Запуск консольных приложений и доступ к стандартным потокам ввода-вывода.
  • Запуск программ от имени другого пользователя.
  • Компиляция скрипта в EXE файл.
  • Включение файлов в скомпилированный файл, которые можно извлекать при запуске.
  • Сжатие и защита исполняемого файла от декомпиляции.
  • Создание графических интерфейсов GUI, информационных сообщений, форм ввода информации.
  • Вызов функций из динамических библиотек и функций Windows API.
  • Работа с реестром Windows, буфером обмена, файлами (чтение, изменение, копирование, удаление).
  • Работа с объектами COM (Сomponent object modelling).
  • Перехват и эмуляция клавиатурных нажатий и кликов мышки.
  • Работа с окнами (особенно легко работать с графическими элементами из Windows): передвижение, скрытие, отображение, изменение размера, активизация, закрытие. К окнам можно обращаться по их заголовку, отображаемому тексту, размеру, расположению, классу, по внутренним дескрипторам (handle) Win32 API, определяемым с помощью входящей в комплект поставки утилиты WindowSpy.
  • Получение информации и взаимодействие с элементами управления (особенно стандартными): поле редактирования, переключатель, список, кнопки, статусная строка и т. д., в том числе неактивными.
  • Интернет: чтение HTML кода страниц и скачивание файлов, работа с FTP, отправка E-mail сообщений, работа с базами данных MySQL и SQLite.
  • Работа с протоколами TCP и UDP.
  • Автоматизация работы в браузерах: Internet Explorer, Opera, Firefox, Google Chrome.
  • Обычные элементы высокоуровневого языка, такие как работа с циклами, функциями и переменными.
  • Огромное количество функций для работы с текстом (как со строками и массивами данных, так и с отдельными символами), в том числе с регулярными выражениями в стиле Perl (используется библиотека PCRE).
  • Работа со звуком и музыкой.
  • Работа со сложными математическими, геометрическими и физическими расчётами (например, с тригонометрическими функциями).
  • Простой синтаксис.
  • AutoHotkey_H — объединённая версия в виде COM и DLL, позволяющая использовать возможности AHK в программах, написанных на других языках.
  • Оптимизация и автоматизация монотонных действий (удаление, перемещение временных файлов, очистка кэш-данных, скачивание файлов).

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

Для AutoHotkey существует интегрированная среда разработки под названием SciTE4AutoHotkey, основанная на бесплатном редакторе SciTE. Компилятор, вспомогательные утилиты и справочные материалы полностью интегрированы, что делает редактор стандартным окружением для разработчиков, использующих AHK. Компилятор AHK и среда разработки SciTE легко устанавливаются и в дополнительной настройке не нуждаются.

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

Популярное использование AutoHotkey:

  • Разработка утилит для Microsoft Windows.
  • Мониторинг веб-сайтов, сетей.
  • Дефрагментация дисков и резервное копирование.
  • Переназначение клавиш, глобально или у отдельных программ
  • Управление мышкой с помощью клавиатуры или джойстика
  • Слежение за системой, автоматическое выполнение некоторых действий по желанию пользователя.
  • Создание ботов/читов/помощников/биндеров к играм. Боты позволяют автоматизировать некоторые действия в играх, в результате пользователь может быстрее добиться нужного результата.

Для упрощения разработки графических интерфейсов существует визуальный редактор SmartGUI Creator.

Исходный код AutoHotkey всех версий на языке C++ доступен для загрузки на GitHub.

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

Примеры

Программа «Привет, мир»:

; Выводит стандартное окно с названием «Пример», надписью «Привет, мир!» и кнопкой «ОК».
MsgBox, 0, Пример, Привет, мир!

Создание диалогового окна:

; Выводит диалоговое окно с кнопками «Да» и «Нет». В случае нажатия «Да» — выход из программы.
MsgBox, 4, Вопрос, Хотите выйти из программы? 
IfMsgBox, Yes
    ExitApp
else
    MsgBox, Спасибо что остались с нами.

Запуск блокнота:

Run, notepad.exe

Будильник на 12 часов и 00 минут:

SetTimer, CheckTime, 300 ; Установка таймера на метку раз в 300 миллисекунд.
return ; Конец раздела автоматического выполнения. Сценарий приостанавливается, пока не сработает метка.

CheckTime:
	if (A_Hour == 12 && A_Min == 00) ; Если время настало.
	{
		ToolTip, Будильник. ; Выводим сообщение.
		Sleep, 3000 ; Ждем 3 секунды.
		ToolTip ; Скрываем сообщение.
	}
return

Скрытие/Показ курсора при нажатии Win + C.

; Скрывает/Показывает курсор мыши при нажатии клавиши Win + C.

OnExit, ShowCursor ; При завершении работы скрипта, показываем курсор.
return ; Конец раздела автоматического выполнения. Сценарий приостанавливается, пока пользователь не сделает что-нибудь.

ShowCursor:
	SystemCursor("On")
ExitApp

#c::SystemCursor("Toggle") ; При нажатии на Win + C показываем/скрываем курсор.

SystemCursor(status := 1)
{
	static AndMask, XorMask, $, hСursor
		, c0,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13 ; Системный курсор.
		, b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13 ; Пустой курсор.
		, h1,h2,h3,h4,h5,h6,h7,h8,h9,h10,h11,h12,h13 ; Дескрипторы курсора по умолчанию.
	if (status = "Init" or status = "I" or $ = "") ; Инициализация при первом вызове.
	{
		$ = h ; Активный курсор по умолчанию.
		VarSetCapacity( hСursor,4444, 1 )
		VarSetCapacity( AndMask, 32*4, 0xFF )
		VarSetCapacity( XorMask, 32*4, 0 )
		system_cursors = 32512,32513,32514,32515,32516,32642,32643,32644,32645,32646,32648,32649,32650
		StringSplit c, system_cursors, `,
		Loop %c0%
		{
			hСursor := DllCall("LoadCursor", "Ptr", 0, "Ptr", c%A_Index%)
			h%A_Index% := DllCall("CopyImage", "Ptr", hСursor, "UInt", 2, "Int", 0, "Int", 0, "UInt", 0)
			b%A_Index% := DllCall("CreateCursor", "Ptr", 0, "Int", 0, "Int", 0, "Int", 32, "Int", 32, "Ptr", &AndMask, "Ptr", &XorMask)
        }
    }
	if (status = 0 or status = "Off" or $ = "h" and (status < 0 or status = "Toggle" or status = "T"))
		$ = b  ; Используем пустой курсор.
	else
		$ = h  ; Используем системный курсор.
	
	Loop %c0%
	{
		hСursor := DllCall( "CopyImage", "Ptr",%$%%A_Index%, "UInt",2, "Int",0, "Int",0, "UInt",0 )
		DllCall("SetSystemCursor", "Ptr", hСursor, "UInt", c%A_Index%)
	}
}

Пример скрипта с использованием графического интерфейса:

Gui, Add, Text,, Имя:
Gui, Add, Text,, Фамилия:
Gui, Add, Edit, vFirstName ym ; Параметр ym запускает новый столбец элементов управления.
Gui, Add, Edit, vLastName
Gui, Add, Button, default, OK ; Метка ButtonOK (если она существует) будет запущена при нажатии кнопки.
Gui, Show,, Простой Пример Ввода
return ; Конец раздела автоматического выполнения. Сценарий приостанавливается, пока пользователь не сделает что-нибудь.

ButtonOK:
	Gui, Submit ; Сохраняет входные данные пользователя в связанную переменную каждого элемента управления.
	MsgBox Ваша Имя Фамилия: "%FirstName% %LastName%".
GuiClose: ; Запускается при закрытии интерфейса.
ExitApp

См. также

Примечания

Ссылки

Эта страница в последний раз была отредактирована 4 января 2024 в 20:36.
Как только страница обновилась в Википедии она обновляется в Вики 2.
Обычно почти сразу, изредка в течении часа.
Основа этой страницы находится в Википедии. Текст доступен по лицензии CC BY-SA 3.0 Unported License. Нетекстовые медиаданные доступны под собственными лицензиями. Wikipedia® — зарегистрированный товарный знак организации Wikimedia Foundation, Inc. WIKI 2 является независимой компанией и не аффилирована с Фондом Викимедиа (Wikimedia Foundation).