RobotGo, Go Native cross-platform RPA and GUI automation @vcaesar
Go to file
2016-12-09 22:08:55 +08:00
base Rename File & Name specification 2016-11-17 16:00:00 +08:00
bitmap Rename File & Name specification 2016-11-17 16:00:00 +08:00
event Update Document 2016-11-27 00:12:38 +08:00
example Add Example 2016-11-24 18:55:21 +08:00
key Fix Windows C99 mode 2016-11-17 16:27:09 +08:00
mouse Rename File & Name specification 2016-11-17 16:00:00 +08:00
screen Rename File & Name specification 2016-11-17 16:00:00 +08:00
test Add LICENSE 2016-11-10 14:34:13 +08:00
window Add SetHandle 2016-11-28 20:41:15 +08:00
.gitignore Update .gitignore 2016-10-11 23:40:32 +08:00
doc.md Add SetHandle 2016-11-28 20:41:15 +08:00
LICENSE Update LICENSE 2016-11-30 16:39:30 +08:00
README_zh.md Update README.md 2016-12-07 19:55:23 +08:00
README.md Update md 2016-12-09 22:08:55 +08:00
robotgo.go Add golint 2016-12-09 20:56:56 +08:00
zh_doc.md Add SetHandle 2016-11-28 20:41:15 +08:00

#Robotgo

Build Status codecov Go Report Card GoDoc

Golang Desktop Automation. Control the mouse, keyboard, bitmap,read the screen,Window Handle and global event listener.

RobotGo supports Mac, Windows, and Linux(X11).

This is a work in progress.

##API Document    中文文档 Please click API Document;This is a work in progress.

##Installation: go get github.com/go-vgo/robotgo

It's that easy!

##Update: go get -u github.com/go-vgo/robotgo

###Requirements:

####ALL:
Golang //Gcc zlib & libpng (bitmap)

####For Mac OS X: Xcode Command Line Tools

brew install libpng
brew install homebrew/dupes/zlib

####For Windows: MinGW or other GCC

#####zlib&libpng Windows32 GCC's Course

#####Download include zlib&libpng Windows64 GCC

####For everything else: GCC

X11 with the XTest extension (also known as the Xtst library)

Event:

xcb,xkb,libxkbcommon

#####Ubuntu:

  sudo apt-get install libx11-dev
  sudo apt-get install libgtkglextmm-x11-dev
  sudo apt-get install libghc6-x11-dev
  sudo apt-get install libgl1-mesa-swx11-dev
  sudo apt-get install xorg-dev

  sudo apt-get install libxtst-dev libpng++-dev   

  Event:

  sudo apt-get install xcb libxcb-xkb-dev x11-xkb-utils libx11-xcb-dev libxkbcommon-x11-dev
  sudo apt-get install libxkbcommon-dev

##Examples:

###Mouse

package main

import (
	//. "fmt"

	"github.com/go-vgo/robotgo"
)

func main() {
  robotgo.ScrollMouse(10, "up")
  robotgo.MouseClick("left",true)
  robotgo.MoveMouseSmooth(100, 200, 1.0, 100.0)
} 

###Keyboard

package main

import (
	//. "fmt"

	"github.com/go-vgo/robotgo"
)

func main() {
  robotgo.TypeString("Hello World")
  robotgo.KeyTap("enter")
  robotgo.TypeString("en")
  robotgo.KeyTap("i", "alt", "command")
  arr := []string{"alt", "command"}
  robotgo.KeyTap("i", arr)
} 

###Screen

package main

import (
	. "fmt"

	"github.com/go-vgo/robotgo"
)

func main() {
  x, y := robotgo.GetMousePos()
  Println("pos:", x, y)
  color := robotgo.GetPixelColor(100, 200)
  Println("color----", color)
} 

###Bitmap

package main

import (
	. "fmt"

	"github.com/go-vgo/robotgo"
)

func main() {
  bit_map := robotgo.CaptureScreen(10, 20, 30, 40)
  Println("...", bit_map)

  fx, fy := robotgo.FindBitmap(bit_map)
  Println("FindBitmap------", fx, fy)

  robotgo.SaveBitmap(bit_map, "test.png")
} 

###Event

package main

import (
	. "fmt"

	"github.com/go-vgo/robotgo"
)

func main() {
  keve := robotgo.AddEvent("k")
  if keve == 0 {
    Println("you press...", "k")
  }

  mleft := robotgo.AddEvent("mleft")
  if mleft == 0 {
    Println("you press...", "mouse left button")
  }
} 

###Window

package main

import (
	. "fmt"

	"github.com/go-vgo/robotgo"
)

func main() {
  //Println("test")
  abool := robotgo.ShowAlert("test", "robotgo")
  if abool == 0 {
 	  Println("ok@@@", "ok")
  }

  title:=robotgo.GetTitle()
  Println("title@@@", title)
}