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

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

相关文章

网页解析 lxml 库--实战

lxml库使用流程 lxml 是 Python 的第三方解析库,完全使用 Python 语言编写,它对 XPath表达式提供了良好的支 持,因此能够了高效地解析 HTML/XML 文档。本节讲解如何通过 lxml 库解析 HTML 文档。 pip install lxml lxm| 库提供了一个 etree 模块,该模块专门用来解析 HTML/XML 文档,下面来介绍一下 lxml 库

性能分析之MySQL索引实战案例

文章目录 一、前言二、准备三、MySQL索引优化四、MySQL 索引知识回顾五、总结 一、前言 在上一讲性能工具之 JProfiler 简单登录案例分析实战中已经发现SQL没有建立索引问题,本文将一起从代码层去分析为什么没有建立索引? 开源ERP项目地址:https://gitee.com/jishenghua/JSH_ERP 二、准备 打开IDEA找到登录请求资源路径位置

Android实现任意版本设置默认的锁屏壁纸和桌面壁纸(两张壁纸可不一致)

客户有些需求需要设置默认壁纸和锁屏壁纸  在默认情况下 这两个壁纸是相同的  如果需要默认的锁屏壁纸和桌面壁纸不一样 需要额外修改 Android13实现 替换默认桌面壁纸: 将图片文件替换frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.*  (注意不能是bmp格式) 替换默认锁屏壁纸: 将图片资源放入vendo

C#实战|大乐透选号器[6]:实现实时显示已选择的红蓝球数量

哈喽,你好啊,我是雷工。 关于大乐透选号器在前面已经记录了5篇笔记,这是第6篇; 接下来实现实时显示当前选中红球数量,蓝球数量; 以下为练习笔记。 01 效果演示 当选择和取消选择红球或蓝球时,在对应的位置显示实时已选择的红球、蓝球的数量; 02 标签名称 分别设置Label标签名称为:lblRedCount、lblBlueCount

滚雪球学Java(87):Java事务处理:JDBC的ACID属性与实战技巧!真有两下子!

咦咦咦,各位小可爱,我是你们的好伙伴——bug菌,今天又来给大家普及Java SE啦,别躲起来啊,听我讲干货还不快点赞,赞多了我就有动力讲得更嗨啦!所以呀,养成先点赞后阅读的好习惯,别被干货淹没了哦~ 🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,助你一臂之力,带你早日登顶🚀,欢迎大家关注&&收藏!持续更新中,up!up!up!! 环境说明:Windows 10

Linux服务器Java启动脚本

Linux服务器Java启动脚本 1、初版2、优化版本3、常用脚本仓库 本文章介绍了如何在Linux服务器上执行Java并启动jar包, 通常我们会使用nohup直接启动,但是还是需要手动停止然后再次启动, 那如何更优雅的在服务器上启动jar包呢,让我们一起探讨一下吧。 1、初版 第一个版本是常用的做法,直接使用nohup后台启动jar包, 并将日志输出到当前文件夹n

centos6一键安装vsftpd脚本

centos6一键安装vsftpd脚本 手动安装vsftpd参考教程:Centos下安装Vsftpd的图文教程 vsftpd脚本功能: 1.安装 (命令执行:sh xxx.sh)2.添加ftp用户 (命令执行:sh xxx.sh add)3.卸载vsftpd (命令执行:sh xxx.sh uninstall) 测试环境:centos6 x64 centos6 x86(测试centos7以

springboot实战学习(1)(开发模式与环境)

目录 一、实战学习的引言 (1)前后端的大致学习模块 (2)后端 (3)前端 二、开发模式 一、实战学习的引言 (1)前后端的大致学习模块 (2)后端 Validation:做参数校验Mybatis:做数据库的操作Redis:做缓存Junit:单元测试项目部署:springboot项目部署相关的知识 (3)前端 Vite:Vue项目的脚手架Router:路由Pina:状态管理Eleme

Android逆向(反调,脱壳,过ssl证书脚本)

文章目录 总结 基础Android基础工具 定位关键代码页面activity定位数据包参数定位堆栈追踪 编写反调脱壳好用的脚本过ssl证书校验抓包反调的脚本打印堆栈bilibili反调的脚本 总结 暑假做了两个月的Android逆向,记录一下自己学到的东西。对于app渗透有了一些思路。 这两个月主要做的是代码分析,对于分析完后的持久化等没有学习。主要是如何反编译源码,如何找到

Lua 脚本在 Redis 中执行时的原子性以及与redis的事务的区别

在 Redis 中,Lua 脚本具有原子性是因为 Redis 保证在执行脚本时,脚本中的所有操作都会被当作一个不可分割的整体。具体来说,Redis 使用单线程的执行模型来处理命令,因此当 Lua 脚本在 Redis 中执行时,不会有其他命令打断脚本的执行过程。脚本中的所有操作都将连续执行,直到脚本执行完成后,Redis 才会继续处理其他客户端的请求。 Lua 脚本在 Redis 中原子性的原因