Linux的易于使用的AutoHotkey/AutoIt替代方案

24

我正在寻找一个易于使用的 Linux GUI自动化/宏平台的推荐。

如果您熟悉 Windows 上的 AutoHotkeyAutoIt,那么您会知道我需要的功能种类和复杂度水平。如果您不熟悉,那么这是一个简单的代码片段,展示了使用 AutoHotkey 是多么的容易:

InputBox, varInput, Please enter some random text...
Run, notepad.exe
WinWaitActive, Untitled - Notepad
SendInput, %varInput%
SendInput, !f{Up}{Enter}{Enter}
WinWaitActive, Save
SendInput, SomeRandomFile{Enter}
MsgBox, Your text`, %varInput% has been saved using notepad!

#n::Run, notepad.exe

现在上面的例子虽然有点毫无意义,但是展示了我正在寻找的功能和简单性的演示。以下是对那些不会AutoHotkey的人的解释:
---- 代码解释开始 ----
- 要求用户输入一些文本并将其存储在varInput中 - 运行notepad.exe - 等待窗口存在并处于活动状态 - 将varInput的内容作为一系列按键发送 - 发送按键以转到文件->退出 - 等待“保存”窗口处于活动状态 - 发送更多按键 - 显示一个带有一些文本和变量内容的消息框 - 注册热键Win+N,按下时执行notepad.exe ---- 代码解释结束 ----
因此,您可以理解这些特点非常明显:能够轻松模拟键盘和鼠标功能,读取输入,处理和显示输出,执行程序,操作窗口,注册热键等等 - 所有这些都可以在不需要任何#includes、不必要的括号、类声明等的情况下完成。简而言之:简单。
现在我已经尝试过Perl和Python,但它们肯定不是AutoHotkey。它们非常适合更高级的东西,但是肯定有一些工具可以轻松进行GUI自动化,对吧?
PS:我已经尝试使用Wine运行AutoHotkey,但发送按键和热键不起作用。

是的,它确实可以这样做,但它还允许您创建键绑定,以便转到其数组中的计算机之一。过去我曾使用Autohotkey来进行多开游戏,我曾看到人们使用Synergy+来实现这一点。我不是100%确定,这就是为什么我给您留下了评论而不是答案。 - plod
推荐的应用程序解决了问题吗?如果是这样,您可以考虑批准答案。谢谢。 - koders
1
相关:Linux的GUI脚本编写在SR.SE上。 - kenorb
另请参阅AlternativeTo(“众包软件推荐”)。 - Peter Mortensen
1
在Ubuntu中,AutoIt的等效工具是什么?对应的Ask Ubuntu问题:What is the equivalent tool for AutoIt in Ubuntu? - Peter Mortensen
显示剩余4条评论
4个回答

10
我建议使用网站alternativeto.net来查找替代程序。
该网站显示了AutoIt的三种替代方案:AutoKey、Sikuli和Silktest。AutoKey似乎能胜任工作。

AutoKey非常方便处理热键事件,并且具有漂亮的GUI界面。pyautogui可用于图像/像素搜索,python-libxdo可用于可靠和强大的窗口操作和键鼠模拟,zenipy用于显示对话框。 - NiMa Thr
该页面现在显示了19个(如果只考虑开源则为12个),按照以下顺序:SikuliUI.Vision RPAAutoKeyActionaOldAutoKeyxdotoolTagUIOrganizeRepeatCloudQAiMacrosTestimT-PlanatbswpPhearJSQuikeyXnee**,GenteeSilktest*。 - Peter Mortensen

8

IronAHK正在开发中,作为AutoHotkey的跨平台版本,可在Linux上使用,但它还不是一个完善的产品。


9
对于刚刚发现这个信息的人,需要注意的是,截至我写下这篇文章时,IronAHK已经不再更新了,但是可以在 GitHub 上找到其开源代码。链接为:https://github.com/polyethene/IronAHK。 - Poik
如果我下载源代码并在Linux上编译,它会工作吗? - Galaxy

5

Sikuli 可以利用截屏来自动化你的界面。它可以在任何 Java 平台上运行,因此具有跨平台性。


1
你应该看看Experitest。我正在使用Windows版本,但它是基于Java的,我认为它也支持Linux。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接