robotgo/README_zh.md
2017-03-17 19:47:08 +08:00

5.6 KiB

Robotgo

CircleCI Status Go Report Card GoDoc Release Join the chat at https://gitter.im/go-vgo/robotgo

Golang 跨平台自动系统,控制键盘鼠标位图和读取屏幕,窗口句柄以及全局事件监听

RobotGo 支持 Mac, Windows, and Linux(X11).

这是一项正在完善中的工作.

提Issues请到Github,便于统一管理和即时更新

Contents

Docs

Requirements:

(环境要求:)

在安装RobotGo之前,请确保Golang、GCC、zlib和libpng被正确安装

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 (bitmap依赖)
zlib&libpng Windows32 GCC教程
下载包含zlib和libpng的64位MinGW

For everything else(Linux等其他系统):

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

事件:
    
xcb,xkb,libxkbcommon
Ubuntu:
sudo apt-get install gcc libc6-dev

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   

#事件:

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

Installation:

go get github.com/go-vgo/robotgo

It's that easy!

png.h: No such file or directory? Please see issues/47.

Update:

go get -u github.com/go-vgo/robotgo   

Examples:

鼠标

package main

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

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

键盘

package main

import (  
	"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)
} 

屏幕

package main

import (
	"fmt"

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

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

位图

package main

import (
	"fmt"

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

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

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

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

事件

package main

import (
	"fmt"

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

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

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

Window

package main

import (
	"fmt"

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

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

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

Donate

Future

  • 更新 Find an image on screen, read pixels from an image
  • 更新 Window Handle
  • 支持 UTF-8
  • 尝试支持 Android,也许支持 IOS
  • 移除 zlib/libpng 依赖

Contributors

License

Robotgo is primarily distributed under the terms of both the MIT license and the Apache License (Version 2.0).

See LICENSE-APACHE, LICENSE-MIT.