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

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

相关文章

MyBatis分页查询实战案例完整流程

《MyBatis分页查询实战案例完整流程》MyBatis是一个强大的Java持久层框架,支持自定义SQL和高级映射,本案例以员工工资信息管理为例,详细讲解如何在IDEA中使用MyBatis结合Page... 目录1. MyBATis框架简介2. 分页查询原理与应用场景2.1 分页查询的基本原理2.1.1 分

Linux下MySQL数据库定时备份脚本与Crontab配置教学

《Linux下MySQL数据库定时备份脚本与Crontab配置教学》在生产环境中,数据库是核心资产之一,定期备份数据库可以有效防止意外数据丢失,本文将分享一份MySQL定时备份脚本,并讲解如何通过cr... 目录备份脚本详解脚本功能说明授权与可执行权限使用 Crontab 定时执行编辑 Crontab添加定

使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解

《使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解》本文详细介绍了如何使用Python通过ncmdump工具批量将.ncm音频转换为.mp3的步骤,包括安装、配置ffmpeg环... 目录1. 前言2. 安装 ncmdump3. 实现 .ncm 转 .mp34. 执行过程5. 执行结

mybatis-plus如何根据任意字段saveOrUpdateBatch

《mybatis-plus如何根据任意字段saveOrUpdateBatch》MyBatisPlussaveOrUpdateBatch默认按主键判断操作类型,若需按其他唯一字段(如agentId、pe... 目录使用场景方法源码方法改造首先在service层定义接口service层接口实现总结使用场景my

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

Three.js构建一个 3D 商品展示空间完整实战项目

《Three.js构建一个3D商品展示空间完整实战项目》Three.js是一个强大的JavaScript库,专用于在Web浏览器中创建3D图形,:本文主要介绍Three.js构建一个3D商品展... 目录引言项目核心技术1. 项目架构与资源组织2. 多模型切换、交互热点绑定3. 移动端适配与帧率优化4. 可

从原理到实战解析Java Stream 的并行流性能优化

《从原理到实战解析JavaStream的并行流性能优化》本文给大家介绍JavaStream的并行流性能优化:从原理到实战的全攻略,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的... 目录一、并行流的核心原理与适用场景二、性能优化的核心策略1. 合理设置并行度:打破默认阈值2. 避免装箱

Maven中生命周期深度解析与实战指南

《Maven中生命周期深度解析与实战指南》这篇文章主要为大家详细介绍了Maven生命周期实战指南,包含核心概念、阶段详解、SpringBoot特化场景及企业级实践建议,希望对大家有一定的帮助... 目录一、Maven 生命周期哲学二、default生命周期核心阶段详解(高频使用)三、clean生命周期核心阶

Python实战之SEO优化自动化工具开发指南

《Python实战之SEO优化自动化工具开发指南》在数字化营销时代,搜索引擎优化(SEO)已成为网站获取流量的重要手段,本文将带您使用Python开发一套完整的SEO自动化工具,需要的可以了解下... 目录前言项目概述技术栈选择核心模块实现1. 关键词研究模块2. 网站技术seo检测模块3. 内容优化分析模

Java 正则表达式的使用实战案例

《Java正则表达式的使用实战案例》本文详细介绍了Java正则表达式的使用方法,涵盖语法细节、核心类方法、高级特性及实战案例,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录一、正则表达式语法详解1. 基础字符匹配2. 字符类([]定义)3. 量词(控制匹配次数)4. 边