go-vgo/robotgo

RobotGo, Go Native cross-platform RPA, GUI automation, Auto test and Computer use @vcaesar

解决的问题

Robotgo 提供了一种跨平台的桌面交互自动化方法。它允许开发者以编程方式控制鼠标和键盘,读取屏幕内容,并在 macOS、Windows 和 Linux 上管理窗口,从而无需为每个操作系统编写特定的自动化代码。

工作原理

Robotgo 作为 Go 代码与系统底层输入和显示 API 之间的桥梁。它提供两种主要构建路径:

  • 默认(Cgo): 使用 C 编译器与原生平台库进行交互。
  • 纯 Go(实验性): 使用构建标签(如 win、mac、x11、wayland 或 libei)来利用 Go 原生后端,减少对 C 工具链的依赖。

它还与其他专用库集成,用于高级任务,例如使用 bitmap 进行图像搜索,或使用 gcv(OpenCV)进行复杂的计算机视觉任务,以识别屏幕上的元素。

适用人群

  • QA 工程师: 用于创建自动化桌面测试。
  • AI 开发者: 用于构建能够感知并交互桌面环境的「计算机使用」代理。
  • 开发者: 用于创建生产力工具、宏或无障碍软件。

特性亮点

  • 全面的输入控制: 完全控制鼠标移动、点击、滚动,以及键盘输入和快捷键。
  • 跨平台支持: 原生支持 Windows、macOS 和 Linux(包括 X11 和 Wayland)。
  • 屏幕感知能力: 可以捕获屏幕、获取像素颜色,并通过 bitmap 或 OpenCV 在屏幕上查找图像。
  • 窗口管理: 提供查找进程 ID、按名称激活窗口以及管理窗口状态的功能。
  • 全局事件监听: 可注册全局键盘和鼠标钩子,根据用户输入触发动作。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目