Go语言:模拟鼠标操作(go-vgo/robotgo)

李大钊:我们要八小时工作!八小时睡觉!另外的八小时留给自己!

▌前置安装:

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

▌按键操作:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package main

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

func main() {
// 向上滚动:3行
robotgo.ScrollMouse(3, `up`)
// 向下滚动:2行
robotgo.ScrollMouse(2, `down`)

// 按下鼠标左键
// 第1个参数:left(左键) / center(中键,即:滚轮) / right(右键)
// 第2个参数:是否双击
robotgo.MouseClick(`left`, false)

// 按住鼠标左键
robotgo.MouseToggle(`down`, `left`)
// 解除按住鼠标左键
robotgo.MouseToggle(`up`, `left`)
}

▌位置操作:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
package main

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

func main() {
// 将鼠标移动到屏幕 x:800 y:400 的位置(闪现到指定位置)
robotgo.MoveMouse(800, 400)

// 将鼠标移动到屏幕 x:800 y:400 的位置(模仿人类操作)
robotgo.MoveMouseSmooth(800, 400)

// 将鼠标移动到屏幕 x:800 y:400 的位置(模仿人类操作)
// 第3个参数:纵坐标x 的延迟到达时间
// 第4个参数:横坐标y 的延迟到达时间
robotgo.MoveMouseSmooth(800, 400, 20.0, 200.0)
}

▌组合操作:

1
2
3
4
5
6
7
8
9
10
package main

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

func main() {
// 移动鼠标到 x:800 y:400 后,双击鼠标左键
robotgo.MoveClick(800, 400, `left`, true)
}

▌所在位置:

1
2
3
4
5
6
7
8
9
10
11
package main

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

func main() {
// 获取当前鼠标所在的位置
x, y := robotgo.GetMousePos()
println(`x:`, x, ` y:`, y)
}

转载:https://zhuanlan.zhihu.com/p/140445455