Эквивалент AutoHotkey?


48

Есть ли эквивалентный продукт / метод для AutoHotkey. Для тех, кто не знает, это продукт, который позволяет программировать движения мыши и клавиатуры. Это позволяет мне «макросеть» определенные функции в программах вместо того, чтобы делать это вручную. В старые времена их называли клавишниками. Но это только половина решения, так как мне нужен также механизм «движения мыши».

Есть ли такой зверь?

Ответы:


31

Существует порт AutoHotKey для Linux под названием IronAHK и аналогичный инструмент под названием Autokey . Я тоже не использовал, я не знаю, насколько хорошо они работают.

Кроме таких программ, вы не найдете точно такой же инструмент автоматизации. Основным средством автоматизации пользователей в Unix-системах является оболочка. Оболочка - это клей, который объединяет другие инструменты: он может запускать внешние программы и контролировать, как они обмениваются данными. Сама оболочка не содержит ничего для манипулирования такими понятиями GUI, как окна и указатель мыши mouse. Что вы делаете, это вызываете специализированные инструменты в скрипте оболочки, в частности, xdotool для манипулирования окнами и ввода нажатий клавиш и событий мыши .

Например, следующий скрипт щелкает по позиции (40,20) в окне Myapp.

#!/bin/sh
xdotool search --class Myapp \
        mousemove --window %1 40 20 \
        click 1

¹ За исключением dtksh , но я никогда не видел его порта Linux.


Хорошая сводка, жаль, что проект устарел на 4 года, а все двоичные файлы - 404, хотя и попробуют xdotool. Спасибо, что нашли время.
Меер Борг

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

1
AFAIK, IronAHK никогда не был полностью реализован и был заброшен.
Джо

2

Вы можете использовать xautomation в Linux. Я использую его на экранах дисплея Raspberry Pi, чтобы отправлять обновления страницы F5 и «возвращать» (вводить) нажатия клавиш для входа в систему.


2

Используйте AutohotkeyX, это недавний WINE-порт autohotkey, который, согласно тестированию winehq, делает все, что Autohokey может делать на окнах. Это просто лучший и самый простой ответ.

https://appdb.winehq.org/objectManager.php?sClass=version&iId=17738

Я лично не проверял это, но результаты WINEHQ имеют тенденцию


1

Загрузите Autohotkey для Linux. Создайте файл Autohotkey (example.ahk). Используйте wine, чтобы запустить Ahk2Exe.exe из папки Autohotkey. Скомпилируйте файл example.ahk для example.exe. Используйте wine для запуска example.exe.


2
Это не хороший вариант. На данный момент функциональность Autohotkey, запускаемого через wine, очень ограничена: appdb.winehq.org/… .
banan3'14

1

Есть несколько проектов, которые решают эту проблему. Двумя наиболее активными из них, AFAIK , являются sikuli и AutoKey (проект, который я помогаю поддерживать).

Я не использовал sikuli, но, похоже, он основан на поиске шаблонов на экране и инициировании действий на их основе.

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

Я использую AutoKey в течение многих лет и поддерживаю его в нашем списке . Это как ряд инструментов повышения производительности: вы можете обойтись без него, но как только вы начнете использовать его, вы удивитесь, как раньше обходились без него.

Некоторые особенности:

AutoKey не работает с определениями и скриптами AutoHotKey. Они должны быть переписаны.

Я написал сценарий проверки концепции bash (доступный по запросу), который переводит фразы AutoHotKey в фразы AutoKey, но это только отправная точка и игнорирует большинство параметров AutoHotKey.

Поскольку сценарии AutoKey написаны на Python3, также можно вызывать такие инструменты, как xdotool и wmctrl, из сценария, чтобы обеспечить дополнительную функциональность, но это обычно не требуется. Хотя скрипты AutoKey написаны на Python, довольно многое можно сделать с очень ограниченными знаниями Python. Вам не нужно быть беглым программистом Python для большинства целей.

Если вы используете дистрибутив на основе Debian, не устанавливайте версию AutoKey, предоставляемую вашим дистрибутивом. Их пакет AutoKey не поддерживается и очень старый. Получите актуальную версию от нас .


0

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

Kantu - это кроссплатформенный инструмент для автоматизации рабочего стола , который очень хорошо работает в Ubuntu (я не тестировал его на других версиях)

Основным средством автоматизации пользователей в Unix-системах является оболочка.

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

Конечно, вы можете объединить kantu с python или запустить его прямо из оболочки.


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

0

Просто используйте XEV и XMODMAP. ПРОСТО и лучше, чем выделенные программы или эмуляция дрянных приложений Windows. Все мои вещи в LINUX используют сценарии для переопределения клавиш и изменения режимов экрана, а затем, когда программа завершена и завершена, верните все в нормальное состояние. Примерно так же легко использовать XMODMAP и создать сценарий, как и сценарий AHK, но с дополнительным бонусом - нет необходимости запускать эмулируемое приложение Windows. И для людей, которые говорят, что ты не можешь сделать то или это ... НЕПРАВИЛЬНО. Вы можете сделать больше из оболочки Linux, чем любая другая ОС, и вы можете делать все, о чем мы говорим, в том числе перемещать окна и при этом использовать системные системные команды, которые встроены!


3
Этот ответ, насколько мне известно, может быть на 100% правильным и точным. Однако было бы  намного полезнее, если бы в него были включены некоторые примеры и / или инструкции, или даже ссылки на дополнительную документацию.
Скотт

0

Я хотел бы отметить, что все приведенные выше решения работают только на системах X11. Нет никакого решения (или, по крайней мере, я еще никого не нашел), которое работает на Вейленде.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.