首页 > 解决方案 > Swift 5 - MacOS App - 与其他应用程序交互

问题描述

我正在尝试制作一个小型机器人,它需要获取屏幕上特定位置的颜色、单击/双击并使用键盘上的字母。

由于我很懒,该机器人只会帮助我节省启动游戏的时间。例如,我启动机器人(带有一个带有“开始”或类似按钮的小窗口,以及我可以选择我想要的游戏的其他按钮),它双击正确图标的位置,一旦它检测到精确的像素组合,它会点击正确的位置并输入我的登录名/密码并启动游戏。

我的问题是:是否可以使用 Xcode Swift5 MacOs 应用程序来做到这一点?

感谢您的时间 !

标签: swiftmacosbots

解决方案


有可能的。

但这不是最简单的事情,需要大量的设置和时间。

我想你还没有使用过 Swift 或 Xcode,所以我不建议为这样一个简单的任务学习两者。

相反,请查看已安装在 Mac 上的应用程序“脚本编辑器”。它让您可以用 Applescript 编写代码(它比代码更具可读性和“类似英语”,并为您提供所需的工具。

在这里,您有一个简单的代码可以双击:

tell application "System Events"
  click at {10, 10}
  delay 0.1
  click at {10, 10}
end tell

这里一个按键

tell application "System Events"
    delay 0.5
    keystroke space using command down
end tell

顺便keystroke说一句,也可以用来输入整个单词和句子。

通过快速的谷歌搜索,您还可以获得在给定 x,y 处获取十六进制颜色的代码:

do shell script "screencapture -R{x},{y},1,1 -t bmp $TMPDIR/test.bmp && \
                 xxd -p -l 3 -s 54 $TMPDIR/test.bmp | \
                 sed 's/\\(..\\)\\(..\\)\\(..\\)/\\3\\2\\1/'"


推荐阅读