当前位置: 首页 > news >正文

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.单例模式 什么是单例模式? 所谓单例,即单个实例。通过编码技巧约定某个类只能有唯一一个实例对象,并且提前在类里面创建好一个实例对象,把构造方法私有化,再对外提供获取这个实例对象的方法,&#xff0…...

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…...

HTML 语义化

目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案&#xff1a; 语义化标签&#xff1a; <header>&#xff1a;页头<nav>&#xff1a;导航<main>&#xff1a;主要内容<article>&#x…...

逻辑回归:给不确定性划界的分类大师

想象你是一名医生。面对患者的检查报告&#xff08;肿瘤大小、血液指标&#xff09;&#xff0c;你需要做出一个**决定性判断**&#xff1a;恶性还是良性&#xff1f;这种“非黑即白”的抉择&#xff0c;正是**逻辑回归&#xff08;Logistic Regression&#xff09;** 的战场&a…...

以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:

一、属性动画概述NETX 作用&#xff1a;实现组件通用属性的渐变过渡效果&#xff0c;提升用户体验。支持属性&#xff1a;width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项&#xff1a; 布局类属性&#xff08;如宽高&#xff09;变化时&#…...

UE5 学习系列(三)创建和移动物体

这篇博客是该系列的第三篇&#xff0c;是在之前两篇博客的基础上展开&#xff0c;主要介绍如何在操作界面中创建和拖动物体&#xff0c;这篇博客跟随的视频链接如下&#xff1a; B 站视频&#xff1a;s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...

OkHttp 中实现断点续传 demo

在 OkHttp 中实现断点续传主要通过以下步骤完成&#xff0c;核心是利用 HTTP 协议的 Range 请求头指定下载范围&#xff1a; 实现原理 Range 请求头&#xff1a;向服务器请求文件的特定字节范围&#xff08;如 Range: bytes1024-&#xff09; 本地文件记录&#xff1a;保存已…...

vue3 定时器-定义全局方法 vue+ts

1.创建ts文件 路径&#xff1a;src/utils/timer.ts 完整代码&#xff1a; import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...

ios苹果系统,js 滑动屏幕、锚定无效

现象&#xff1a;window.addEventListener监听touch无效&#xff0c;划不动屏幕&#xff0c;但是代码逻辑都有执行到。 scrollIntoView也无效。 原因&#xff1a;这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作&#xff0c;从而会影响…...

Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决

Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决 问题背景 在一个基于 Spring Cloud Gateway WebFlux 构建的微服务项目中&#xff0c;新增了一个本地验证码接口 /code&#xff0c;使用函数式路由&#xff08;RouterFunction&#xff09;和 Hutool 的 Circle…...

在Ubuntu24上采用Wine打开SourceInsight

1. 安装wine sudo apt install wine 2. 安装32位库支持,SourceInsight是32位程序 sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32:i386 3. 验证安装 wine --version 4. 安装必要的字体和库(解决显示问题) sudo apt install fonts-wqy…...

k8s从入门到放弃之HPA控制器

k8s从入门到放弃之HPA控制器 Kubernetes中的Horizontal Pod Autoscaler (HPA)控制器是一种用于自动扩展部署、副本集或复制控制器中Pod数量的机制。它可以根据观察到的CPU利用率&#xff08;或其他自定义指标&#xff09;来调整这些对象的规模&#xff0c;从而帮助应用程序在负…...