swift - Swift 5 - MacOS App - 与其他应用程序交互
问题描述
我正在尝试制作一个小型机器人,它需要获取屏幕上特定位置的颜色、单击/双击并使用键盘上的字母。
由于我很懒,该机器人只会帮助我节省启动游戏的时间。例如,我启动机器人(带有一个带有“开始”或类似按钮的小窗口,以及我可以选择我想要的游戏的其他按钮),它双击正确图标的位置,一旦它检测到精确的像素组合,它会点击正确的位置并输入我的登录名/密码并启动游戏。
我的问题是:是否可以使用 Xcode Swift5 MacOs 应用程序来做到这一点?
感谢您的时间 !
解决方案
有可能的。
但这不是最简单的事情,需要大量的设置和时间。
我想你还没有使用过 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/'"
推荐阅读
- html - 有没有解决背景图像不完整的方法
- python - 查询第 3 级嵌套
- php - 如何更改包括随日期更改的php?
- java - Maven JavaDoc 插件无法解析 XML
- php - MySql INSERT ON DUPLICATE KEY UPDATE 与时间条件
- python-3.x - 在 Mac 上导入 tweepy 错误
- javascript - 如何在 Angular 6 中使用完全自定义的组件
- c++ - 在 Visual Studio 中运行它们的一种配置
- angular - 如何在 DOM Element 和 Angular 之间创建映射
- c# - Interop.Excel - 使用 output.,Rows[i].Delete() 将行向上移动,以便 for 循环不会检查最近移动的行