GO脚本-模拟鼠标键盘
  bAB2KcLKpirZ 2023年11月13日 34 0

01GetCoordinate

获取坐标

package main

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

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

}

02GetColor

获取坐标颜色

package main

import (
	"fmt"
	"image/color"

	"github.com/kbinani/screenshot"
)

func main() {
	// 定义目标坐标
	targetX := 100
	targetY := 200

	// 获取屏幕边界
	bounds := screenshot.GetDisplayBounds(0)
	width := bounds.Dx()
	height := bounds.Dy()

	// 捕获屏幕
	img, err := screenshot.Capture(0, 0, width, height)
	if err != nil {
		panic(err)
	}

	// 获取目标坐标的颜色
	c := img.At(targetX, targetY).(color.RGBA)

	// 打印颜色信息
	fmt.Printf("坐标(%d, %d)的颜色为 RGB(%d, %d, %d)\n", targetX, targetY, c.R, c.G, c.B)
}

03 操作案例

package main

import (
	"fmt"
	"github.com/go-vgo/robotgo"
	"math/rand"
	"time"
)

func main() {

	//两个随机数的代码示例,一个生成3秒至6秒之间的随机数,另一个生成70毫秒至200毫秒之间的随机数:
	min1 := 3   // 最小休息时间(秒)
	max1 := 10  // 最大休息时间(秒)
	min2 := 70  // 最小休息时间(毫秒)
	max2 := 200 // 最大休息时间(毫秒)

	rand.Seed(time.Now().UnixNano())

	// 生成随机的休息时间(秒)
	sleepTime1 := rand.Intn(max1-min1+1) + min1
	fmt.Printf("开始休息 %d 秒钟...\n", sleepTime1)
	time.Sleep(time.Duration(sleepTime1) * time.Second)
	fmt.Println("第一个休息结束!")

	// 生成随机的休息时间(毫秒)
	sleepTime2 := rand.Intn(max2-min2+1) + min2
	fmt.Printf("开始休息 %d 毫秒...\n", sleepTime2)
	time.Sleep(time.Duration(sleepTime2) * time.Millisecond)
	fmt.Println("第二个休息结束!")

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

	// 第一个客户端角色 坐标,登入游戏
	time.Sleep(time.Duration(sleepTime1) * time.Second)
	robotgo.MoveClick(72, 448, `left`, true)
	time.Sleep(time.Duration(sleepTime1) * time.Second)
	robotgo.MoveClick(72, 448, `left`, true)
	time.Sleep(time.Duration(sleepTime1) * time.Second)
	robotgo.KeyTap("space")
	time.Sleep(time.Duration(sleepTime2) * time.Millisecond)

	// 第二个客户端角色 坐标,登入游戏
	time.Sleep(time.Duration(sleepTime1) * time.Second)
	robotgo.MoveClick(868, 434, `left`, true)
	time.Sleep(time.Duration(sleepTime1) * time.Second)
	robotgo.MoveClick(868, 434, `left`, true)
	time.Sleep(time.Duration(sleepTime1) * time.Second)
	robotgo.KeyTap("space")
	time.Sleep(time.Duration(sleepTime2) * time.Millisecond)

	// 第一个客户端角色 坐标,开启同步
	time.Sleep(time.Duration(sleepTime1) * time.Millisecond)
	robotgo.MoveClick(401, 451, `left`, true)
	time.Sleep(time.Duration(sleepTime1) * time.Millisecond)
	robotgo.KeyTap("space")
	time.Sleep(time.Duration(sleepTime1) * time.Millisecond)
	robotgo.KeyTap("f3", "alt")
	time.Sleep(time.Duration(sleepTime1) * time.Millisecond)
	fmt.Println("第一个客户端角色 坐标,开启同步")

	// 第二个客户端角色 坐标,开启同步
	time.Sleep(time.Duration(sleepTime1) * time.Millisecond)
	time.Sleep(time.Duration(sleepTime1) * time.Millisecond)
	robotgo.MoveClick(1219, 458, `left`, true)
	time.Sleep(time.Duration(sleepTime1) * time.Millisecond)
	robotgo.KeyTap("space")
	time.Sleep(time.Duration(sleepTime1) * time.Millisecond)
	robotgo.KeyTap("f3", "alt")
	time.Sleep(time.Duration(sleepTime1) * time.Millisecond)
	fmt.Println("第二个客户端角色 坐标,开启同步")

	// 第一个客户端角色 坐标,开启同步
	time.Sleep(time.Duration(sleepTime1) * time.Millisecond)
	robotgo.MoveClick(401, 451, `left`, true)
	time.Sleep(time.Duration(sleepTime1) * time.Millisecond)
	robotgo.KeyTap("space")
	time.Sleep(time.Duration(sleepTime2) * time.Millisecond)

	// 模拟按下end
	robotgo.KeyDown("end")
	// 延迟1秒钟
	time.Sleep(1 * time.Second)
	// 松开end
	robotgo.KeyUp("end")
	time.Sleep(time.Duration(sleepTime2) * time.Millisecond)
	time.Sleep(time.Duration(sleepTime2) * time.Millisecond)
	// 模拟按下end
	robotgo.KeyDown("pagedown")
	// 延迟9秒钟
	time.Sleep(9 * time.Second)
	// 松开end
	robotgo.KeyUp("pagedown")
	time.Sleep(time.Duration(sleepTime2) * time.Millisecond)
	time.Sleep(time.Duration(sleepTime1) * time.Millisecond)

	time.Sleep(time.Duration(sleepTime2) * time.Millisecond)
	robotgo.KeyTap("delete")
	time.Sleep(time.Duration(sleepTime2) * time.Millisecond)
	robotgo.KeyTap("delete")
	time.Sleep(time.Duration(sleepTime2) * time.Millisecond)
	robotgo.KeyTap("delete")

	// 模拟按下Delete键
	robotgo.KeyToggle("delete", "down")
	// 延迟0.5秒
	time.Sleep(500 * time.Millisecond)
	// 松开Delete键
	robotgo.KeyToggle("delete", "up")
	time.Sleep(time.Duration(sleepTime1) * time.Millisecond)

	// 模拟按下end键
	robotgo.KeyToggle("home", "down")
	// 延迟0.8秒
	time.Sleep(800 * time.Millisecond)
	// 松开end键
	robotgo.KeyToggle("home", "up")
	time.Sleep(time.Duration(sleepTime1) * time.Millisecond)

	//进入副本
	//robotgo.KeyTap("space")
	//time.Sleep(time.Duration(sleepTime2) * time.Millisecond)
	//robotgo.KeyTap("space")
	//time.Sleep(time.Duration(sleepTime2) * time.Millisecond)
}

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月13日 0

暂无评论

推荐阅读
  jnZtF7Co41Wg   2023年12月11日   29   0   0 nginx客户端服务端
  jnZtF7Co41Wg   2023年12月09日   27   0   0 客户端服务端数据
  jnZtF7Co41Wg   2023年12月10日   22   0   0 nginx客户端服务端NFS
  aYmIB3fiUdn9   2023年12月08日   50   0   0 客户端IPNATlvs
  38gcbVXUBcLA   2023年11月25日   25   0   0 服务器客户端HTTP