实战:让脚本在任意分辨率通用!

2024-09-05 09:32

本文主要是介绍实战:让脚本在任意分辨率通用!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

下面教大家如何做一个分辨率通用的脚本
相信大家都很需要这个教程吧
我就以按键精灵论坛为例子:我们来做个点击搜索并输入搜索内容

第一步:首先我们要获取窗口句柄
关于获取窗口句柄的这部分我之前已经写过这个帖子了
大家可以到右侧链接查看: http://bbs.vrbrothers.com/viewthread.php?tid=203495
注意:以下部分需要完成第一步先
完成第一步差不多是这样、要注意指定窗口句柄那里一定要打钩
1.jpg 
好了、接着我们继续下一步

第二步:定位起点坐标
这里我们要注意一个地方
定位起点的坐标、应该定位哪里
我们要选取一个每台电脑都显示一样的地方定位坐标
比如我们的按键精灵论坛
2.JPG 
我们在红色圈圈那里定位起点
把鼠标移动要定位起点的定位右击
这个时候你会发现
抓抓的定位起点坐标x,y会出现数字
3.jpg 
另外我们要记得起点坐标的颜色
4.jpg 
色值:EFE1C1
这样我们就完成定位起点坐标了

第三步:加入坐标
我们获取需要点击的坐标
我们做的例子是:点击搜索并输入搜索内容
这是我们要获取搜索的坐标、以及搜索位置的坐标
把搜索的坐标加入点一:<我获取到的坐标是:567,75>
搜为位置坐标加入点二:<我获取到的坐标是:282,252>

第四步:编写代码<获取句柄以及起点坐标>
这个时候我们已经做好的准备工作开始编写代码了
首先大家把我这段代码复制到源码内
  1. hwnd= Plugin.Window.MousePoint()
  2. XY= Plugin.Bkgnd.FindColor(hwnd,0,0,1024,768,"EFE1C1")//要注意修改括号内的颜色值
  3. aa = split(XY, "|")
  4. x = aa(0)
  5. y = aa(1)
  6. If x =-1 Then 
  7. MessageBox "定位起点失败"
  8. Else 
  9. cx = x
  10. TracePrint x
  11. cy = y
  12. TracePrint y
  13. End If
复制代码

要记得修改色值、不然会出错

第五步:<编写坐标代码以及转换>
这是懒人写的代码
  1. Call Plugin.Bkgnd.LeftClick(Hwnd, 0, 0)
复制代码

小若建议用下面这个代码
  1. Call Plugin.Bkgnd.MoveTo(Hwnd, 0, 0)
  2. Delay 32
  3. Call Plugin.Bkgnd.LeftClick(Hwnd, 0, 0)
复制代码

也可以这样写
  1. Call Plugin.Bkgnd.MoveTo(Hwnd, 0, 0)
  2. Delay 32
  3. Call Plugin.Bkgnd.LeftDown(Hwnd, 0, 0)
  4. Delay 100
  5. Call Plugin.Bkgnd.LeftUp(Hwnd, 0, 0)
复制代码

具体看你个人喜欢
要记住修改坐标
大家看下定位后的坐标和不定位的坐标有什么不同
没定位之前
  1. Call Plugin.Bkgnd.MoveTo(Hwnd, 0, 0)
  2. Delay 32
  3. Call Plugin.Bkgnd.LeftClick(Hwnd, 0, 0)
复制代码

定位后
  1. Call Plugin.Bkgnd.MoveTo(Hwnd, 0+cx, 0+cy)
  2. Delay 32
  3. Call Plugin.Bkgnd.LeftClick(Hwnd, 0+cx, 0+cy)
复制代码

我们把我们之前获取到的坐标输入好
如小若刚才获取到的2个坐标
搜索的坐标点一:<我获取到的坐标是:567,75>
搜索位置坐标点二:<我获取到的坐标是:282,252>
代码如下
  1. Call Plugin.Bkgnd.MoveTo(Hwnd, 567+cx, 75+cy)
  2. Delay 32
  3. Call Plugin.Bkgnd.LeftClick(Hwnd, 567+cx, 75+cy)
  4. Delay 500
  5. Call Plugin.Bkgnd.MoveTo(Hwnd, 282+cx, 252+cy)
  6. Delay 32
  7. Call Plugin.Bkgnd.LeftClick(Hwnd, 282+cx, 252+cy)
复制代码


第六步:输入字符串信息到搜索栏内
代码如下
  1. Call Plugin.Bkgnd.SendString(Hwnd, "内容")
复制代码

当然你想自己修改也可以、代码如下
  1. UserVar Var1=0 "设置内容"
  2. Call Plugin.Bkgnd.SendString(Hwnd, Var1)
复制代码

这样我们就完成了分辨率通用的脚本

完成的代码是
  1. //自定义内容
  2. UserVar Var1=0 "设置内容"
  3. //获取句柄以及定位起点
  4. hwnd= Plugin.Window.MousePoint()
  5. XY= Plugin.Bkgnd.FindColor(hwnd,0,0,1024,768,"EFE1C1")
  6. aa = split(XY, "|")
  7. x = aa(0)
  8. y = aa(1)
  9. If x =-1 Then 
  10. MessageBox "定位起点失败"
  11. Else 
  12. cx = x
  13. TracePrint x
  14. cy = y
  15. TracePrint y
  16. End If
  17. //给予适当的延时
  18. Delay 500
  19. //操作
  20. Call Plugin.Bkgnd.MoveTo(Hwnd, 567+cx, 75+cy)
  21. Delay 32
  22. Call Plugin.Bkgnd.LeftClick(Hwnd, 567+cx, 75+cy)
  23. Delay 500
  24. Call Plugin.Bkgnd.MoveTo(Hwnd, 282+cx, 252+cy)
  25. Delay 32
  26. Call Plugin.Bkgnd.LeftClick(Hwnd, 282+cx, 252+cy)
  27. //输入字符串
  28. Call Plugin.Bkgnd.SendString(Hwnd, Var1)
复制代码

这篇关于实战:让脚本在任意分辨率通用!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1138576

相关文章

Golang操作DuckDB实战案例分享

《Golang操作DuckDB实战案例分享》DuckDB是一个嵌入式SQL数据库引擎,它与众所周知的SQLite非常相似,但它是为olap风格的工作负载设计的,DuckDB支持各种数据类型和SQL特性... 目录DuckDB的主要优点环境准备初始化表和数据查询单行或多行错误处理和事务完整代码最后总结Duck

java脚本使用不同版本jdk的说明介绍

《java脚本使用不同版本jdk的说明介绍》本文介绍了在Java中执行JavaScript脚本的几种方式,包括使用ScriptEngine、Nashorn和GraalVM,ScriptEngine适用... 目录Java脚本使用不同版本jdk的说明1.使用ScriptEngine执行javascript2.

Python中的随机森林算法与实战

《Python中的随机森林算法与实战》本文详细介绍了随机森林算法,包括其原理、实现步骤、分类和回归案例,并讨论了其优点和缺点,通过面向对象编程实现了一个简单的随机森林模型,并应用于鸢尾花分类和波士顿房... 目录1、随机森林算法概述2、随机森林的原理3、实现步骤4、分类案例:使用随机森林预测鸢尾花品种4.1

解决Cron定时任务中Pytest脚本无法发送邮件的问题

《解决Cron定时任务中Pytest脚本无法发送邮件的问题》文章探讨解决在Cron定时任务中运行Pytest脚本时邮件发送失败的问题,先优化环境变量,再检查Pytest邮件配置,接着配置文件确保SMT... 目录引言1. 环境变量优化:确保Cron任务可以正确执行解决方案:1.1. 创建一个脚本1.2. 修

python写个唤醒睡眠电脑的脚本

《python写个唤醒睡眠电脑的脚本》这篇文章主要为大家详细介绍了如何使用python写个唤醒睡眠电脑的脚本,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 环境:win10python3.12问题描述:怎么用python写个唤醒睡眠电脑的脚本?解决方案:1.唤醒处于睡眠状

多模块的springboot项目发布指定模块的脚本方式

《多模块的springboot项目发布指定模块的脚本方式》该文章主要介绍了如何在多模块的SpringBoot项目中发布指定模块的脚本,作者原先的脚本会清理并编译所有模块,导致发布时间过长,通过简化脚本... 目录多模块的springboot项目发布指定模块的脚本1、不计成本地全部发布2、指定模块发布总结多模

shell脚本快速检查192.168.1网段ip是否在用的方法

《shell脚本快速检查192.168.1网段ip是否在用的方法》该Shell脚本通过并发ping命令检查192.168.1网段中哪些IP地址正在使用,脚本定义了网络段、超时时间和并行扫描数量,并使用... 目录脚本:检查 192.168.1 网段 IP 是否在用脚本说明使用方法示例输出优化建议总结检查 1

Golang使用minio替代文件系统的实战教程

《Golang使用minio替代文件系统的实战教程》本文讨论项目开发中直接文件系统的限制或不足,接着介绍Minio对象存储的优势,同时给出Golang的实际示例代码,包括初始化客户端、读取minio对... 目录文件系统 vs Minio文件系统不足:对象存储:miniogolang连接Minio配置Min

Linux使用nohup命令在后台运行脚本

《Linux使用nohup命令在后台运行脚本》在Linux或类Unix系统中,后台运行脚本是一项非常实用的技能,尤其适用于需要长时间运行的任务或服务,本文我们来看看如何使用nohup命令在后台... 目录nohup 命令简介基本用法输出重定向& 符号的作用后台进程的特点注意事项实际应用场景长时间运行的任务服

Node.js 中 http 模块的深度剖析与实战应用小结

《Node.js中http模块的深度剖析与实战应用小结》本文详细介绍了Node.js中的http模块,从创建HTTP服务器、处理请求与响应,到获取请求参数,每个环节都通过代码示例进行解析,旨在帮... 目录Node.js 中 http 模块的深度剖析与实战应用一、引言二、创建 HTTP 服务器:基石搭建(一