GO脚本-模拟鼠标键盘
01GetCoordinate
获取坐标
package mainimport ("github.com/go-vgo/robotgo"
)func main() {// 获取当前鼠标所在的位置x, y := robotgo.GetMousePos()println(`x:`, x, ` y:`, y)}
02GetColor
获取坐标颜色
package mainimport ("fmt""image/color""github.com/kbinani/screenshot"
)func main() {// 定义目标坐标targetX := 100targetY := 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 mainimport ("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) + min1fmt.Printf("开始休息 %d 秒钟...\n", sleepTime1)time.Sleep(time.Duration(sleepTime1) * time.Second)fmt.Println("第一个休息结束!")// 生成随机的休息时间(毫秒)sleepTime2 := rand.Intn(max2-min2+1) + min2fmt.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)// 模拟按下endrobotgo.KeyDown("end")// 延迟1秒钟time.Sleep(1 * time.Second)// 松开endrobotgo.KeyUp("end")time.Sleep(time.Duration(sleepTime2) * time.Millisecond)time.Sleep(time.Duration(sleepTime2) * time.Millisecond)// 模拟按下endrobotgo.KeyDown("pagedown")// 延迟9秒钟time.Sleep(9 * time.Second)// 松开endrobotgo.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)
}相关文章:
GO脚本-模拟鼠标键盘
01GetCoordinate 获取坐标 package mainimport ("github.com/go-vgo/robotgo" )func main() {// 获取当前鼠标所在的位置x, y : robotgo.GetMousePos()println(x:, x, y:, y)}02GetColor 获取坐标颜色 package mainimport ("fmt&quo…...
Ubuntu设置SSH
在Ubuntu上通过SSH服务远程连接其他机器 首先通过以下命令判断是否安装SSH服务: ssh localhost如果出现 ssh: connect to host localhost port 22: Connection refused 则表示还未安装SSH。 通过以下命令安装SSH: sudo apt update sudo apt install…...
创作2周年?浅记一下~
前言: 最近确实有点缺乏去更新博客的动力,一晃两年过去了,其实也是我新入职公司的两年,两年虽然不长,但是确实发生了太多事情值得去记录下来... 机缘 说是机缘也不是算是,第一次写博客是刚好在CSDN里面查资…...
MATLAB算法实战应用案例精讲-【优化算法】光学显微镜算法(OMA)(附MATLAB代码实现)
前言 光学显微镜算法(Optical Microscope Algorithm, OMA)从光学显微镜对目标物体的放大能力中获得灵感,使用肉眼进行初始观察,并通过物镜和目镜模拟放大过程。通过两个实验验证了OMA的性能,该算法具有用户友好且不需要初始化参数的特点:(1)在50个Benchmark函数上,将OMA与…...
常见弯道输送机有哪些
提到弯道输送机您可能首先想到的就是弯道滚筒线,其实除了滚筒线之外,也有一些其他线体可以做弯道,下面就为您总结了4种常见的弯道输送机。 1、弯道皮带线:即线体转弯处设计成皮带输送机,这种形式的转弯设计可以实现不同…...
聚观早报 | 2023社交进入大变革时代;赛力斯发布9月产销快报
【聚观365】10月9日消息 2023社交进入大变革时代 赛力斯发布9月产销快报 Meta Quest 3头显上市在即 PayPay5年用户数超6000万 现代汽车9月销售约1.8万辆电动汽车 2023社交进入大变革时代 不久前,Meta推出社交平台Threads、微信种草社区“小绿书”开启内测&…...
nginx-proxy反向代理缓存
介绍: 反向代理缓存,类似于动静分离,即通过nginx代理服务器根据客户端发送的url请求,去后台服务器获取数据,将静态数据缓存到nginx代理服务器上,并配置有过期时间,当客户端下次以相同的url请求…...
Java反射(一)--- 类的实例化
文章目录 一、整理框架二、Java反射机制提供的功能三、反射相关的主要API四、相关代码:1.Person类2.反射之前,对于Person类的操作3.反射之后,对于Person类的操作 提示:以下是本篇文章正文内容,下面案例可供参考 一、整…...
web3.0时代分布式网络协议的异同
Web3.0时代标志着分布式网络协议的兴起,其中IPFS(InterPlanetary File System)和NDN(Named Data Networking)是备受瞩目的项目。尽管它们都属于分布式网络协议领域,但在多个方面存在显著区别。以下是IPFS和…...
【多线程案例】设计模式-单例模式
1.单例模式 什么是单例模式? 所谓单例,即单个实例。通过编码技巧约定某个类只能有唯一一个实例对象,并且提前在类里面创建好一个实例对象,把构造方法私有化,再对外提供获取这个实例对象的方法,࿰…...
MyBatis-Plus演绎:数据权限控制,优雅至极!
🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是尘缘,一个在CSDN分享笔记的博主。📚📚 👉点击这里,就可以查看我的主页啦!👇&#x…...
医学专题--多组学在药物治疗靶点筛选中的研究思路
研究背景 药物靶点(drug target):是指药物在体内的作用结合位点,包括基因位点、受体、酶、离子通路、核酸等生物大分子,靶向药物从单靶点药物到多靶点药物都在不断进行临床探索。小分子多靶点药物因其多靶向性、高效率…...
搜索与图论总结
算法博文DFSDFS(深度优先)-CSDN博客BFSBFS(宽度优先)(最短路)-CSDN博客有向图与无向图有向图与无向图(邻接表)_无向图有向图邻接表_人生导师yxc的博客-CSDN博客拓扑排序topsort(拓扑排序)-CSDN博客最短路最…...
lv8 嵌入式开发-网络编程开发 15I/O多路复用及select函数
目录 1 I/O多路复用 1.1 select函数及其他接口相关介绍 1.2 原TCP—socket示例: 1.3 实现select函数TCP—socket示例: 2 练习 1 I/O多路复用 多路复用的实现方式 1.1 select函数及其他接口相关介绍 int select(int nfds, fd_set *readfds, fd_set…...
阿里云 linux tomcat 无法访问方法
1、阿里云放行tomcat端口 例如7077端口号 2、linux 命令行防火墙 设置端口打开 以下命令查看是否开启指定端口 firewall-cmd --list-ports以下命令添加指定端口让防火墙放行 firewall-cmd --zonepublic --add-port3306/tcp --permanent以下命令重新启动防火墙 systemctl re…...
公园视频监控系统如何改造?人工智能又能提供哪些帮助?
近日合肥市骆岗公园宣布正式开园,作为目前世界最大的城市公园,占地12.7万平方公里,如此壮观宏伟的建设,也吸引到了不少市民进行参观打卡。不管大型小型,城市里的公园都是随处可见的,那么,公园安…...
面试算法19:最多删除一个字符得到回文
题目 给定一个字符串,请判断如果最多从字符串中删除一个字符能不能得到一个回文字符串。例如,如果输入字符串"abca",由于删除字符’b’或’c’就能得到一个回文字符串,因此输出为true。 分析 本题还是从字符串的两端…...
H5+Css3文本溢出添加省略号(包括插件)
一、单行 溢出隐藏 添加省略号 p{overflow: hidden;text-overflow:ellipsis;white-space: nowrap; }二、多行 溢出隐藏 省略号 p{display: -webkit-box;-webkit-box-orient: vertical;/*设置省略号在容器第四行文本后*/-webkit-line-clamp: 4; overflow: hidden; }局限性&…...
将休眠镜像文件hiberfil.sys移动到D盘,可以减少C盘好几个G的空间占用
hiberfil.sys是什么文件? 该文件是开启休眠功能后,系统自动生成的内存镜像文件,以便我们唤醒电脑之后可以快速开启程序。 1、首先打开电脑,使用“windowsR”组合键进入运行,输入“regedit”命令。 2、在注册表编辑器中…...
YTM32的模数转换器ADC外设模块详解
文章目录 简介原理与机制ADC转换器的上下电和省电模式ADC转换结果和FIFOADC转换队列的工作模式ADC转换器的触发信号ADC转换器的看门狗中断事件和DMA 应用要点(软件)总结参考文献 简介 YTM32的ADC转换器外设最多可以集成32个输入通道,最高12b…...
Dify实战指南:从零构建大模型应用与智能体开发全流程
1. 项目概述:从零到一,构建你的大模型应用开发实战手册如果你对AI应用开发感兴趣,但又觉得从零开始搭建一个能用的智能体(Agent)或者知识库问答系统门槛太高,那么你很可能已经听说过Dify这个名字。作为一个…...
lsyncd rsyncssh同步中断:Broken pipe (32) 深度诊断与流量整形方案
1. 问题现象与初步诊断 最近在帮客户部署lsyncdrsyncssh方案时,遇到了一个典型问题:同步25GB目录时,总是在传输4GB左右中断。日志里反复出现"Broken pipe (32)"错误,就像下面这样: packet_write_wait: Conne…...
神经进化算法实战:从零构建AI Flappy Bird游戏智能体
1. 项目概述:当AI学会玩像素小鸟如果你玩过那个让人又爱又恨的《Flappy Bird》,一定对那只在绿色水管间反复横跳的小鸟记忆犹新。但你想过吗,如果让一群“数字小鸟”自己学会玩这个游戏,会是什么景象?这正是“AI Flapp…...
Windows升级Node版本指南
在 Windows 上升级 Node.js,主要有四种方法,各有侧重。对于大多数开发者,使用版本管理工具 nvm-windows 是最灵活高效的选择。 Windows安装Node.js: 步骤1:访问 Node.js 官方网站 官方网站,下载适用于 Wind…...
嵌入式Linux SPI屏驱动踩坑实录:fbtft模块加载失败与dmesg排错指南
嵌入式Linux SPI屏驱动深度排错指南:从dmesg到硬件配置的全链路解析 当你在树莓派或全志H3开发板上折腾那块SPI接口的TFT屏幕时,是否经历过这样的绝望时刻?设备树配置看起来完美无缺,insmod命令执行后却只收获一片漆黑的屏幕和满屏…...
Hyper-V下安装macOS(引导文件macOS.Monterey.14.x.UEFI.vhdx)版本:UEFI-OC095-
用于windows自带hyper-v虚拟机安装macos14时使用的虚拟磁盘,具体如何安装请参考文章...
STM32高效驱动WS2812:SPI+DMA时序精解与实战避坑
1. WS2812驱动原理与SPIDMA方案优势 第一次接触WS2812灯带时,我被它的单线控制方式惊艳到了——只需要一根信号线就能控制数百个RGB灯珠。但真正动手实现时才发现,这个看似简单的协议背后藏着不少玄机。WS2812采用归零码(RZ)编码方…...
京东数据利器:掌握详情与评论资源
在电商高速发展的今天,数据是了解市场、洞察用户需求、优化产品策略的核心利器。京东作为国内领先的电商平台,其商品详情与用户评论数据承载了大量价值信息。掌握这些资源,不仅可以帮助商家、品牌方优化产品策略,还能辅助内容创作…...
S905M芯片盒子救砖实战:8189ETV无线与NAND存储的线刷固件修复指南
1. 救砖前的准备工作 当你发现手里的辽宁移动数码视讯Q5盒子突然变砖,先别急着扔。这种采用S905M芯片的盒子其实有很高的可玩性,尤其是搭配8189ETV无线模块和NAND存储的方案,只要掌握正确方法,救砖成功率很高。我前前后后折腾过二…...
gqty:零配置强类型GraphQL客户端,颠覆传统开发体验
1. 项目概述:一个颠覆性的GraphQL客户端方案如果你在过去几年里深度参与过前端开发,尤其是与GraphQL API打交道,那么你一定体会过那种“甜蜜的负担”。GraphQL带来的数据查询自由度和类型安全让人着迷,但随之而来的客户端状态管理…...
