吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1007|回复: 9
收起左侧

[其他求助] 求制作一个按键精灵的脚本

[复制链接]
wsdsl1 发表于 2024-7-16 04:12
50吾爱币
之前求过一个,但是使用中遇到些问题,有可能是我的表述太复杂不清晰,这次重新求一个,我尽可能的把要求用简洁的方式表述出来:

跳转标志1
设定一个搜索范围(比如从0,0到500,500),在此范围内搜索“图片A”,如果搜索到“图片A”则跳到跳转标志2,否则跳到跳转标志3

跳转标志2
鼠标移至“图片A”的中心点左键单击一次,如果范围内有多张“图片A”,则鼠标移至最上方“图片A”的中心点左键单击一次(因为出现多张同样图片的话是按照从上到下排列的),否则延迟5秒跳到跳转标志1

跳转标志3
鼠标移至x,y坐标处左键单击一次,延迟2秒,跳到跳转标志1

================分割线
以上表述应该清晰了吧,望大佬给制作个按键精灵的脚本,在每个设定条件的前方或后方加上注释,方便本人能够理解,感谢!

最佳答案

查看完整内容

' 定义搜索范围的坐标 Dim startX, startY, endX, endY startX = 0 startY = 0 endX = 500 endY = 500 ' 定义图片路径 Dim imgPath imgPath = "C:\path\to\图片A.png" ' 跳转标志1 标志1: ' 在范围内搜索“图片A” If FindPic(startX, startY, endX, endY, imgPath, 0.9, x, y) Then ' 找到图片A,跳转到跳转标志2 GoTo 标志2 Else ' 没找到图片A,跳转到跳转标志3 GoTo 标志3 End If ...

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

xxl1039 发表于 2024-7-16 04:12
' 定义搜索范围的坐标
Dim startX, startY, endX, endY
startX = 0
startY = 0
endX = 500
endY = 500

' 定义图片路径
Dim imgPath
imgPath = "C:\path\to\图片A.png"

' 跳转标志1
标志1:

' 在范围内搜索“图片A”
If FindPic(startX, startY, endX, endY, imgPath, 0.9, x, y) Then
    ' 找到图片A,跳转到跳转标志2
    GoTo 标志2
Else
    ' 没找到图片A,跳转到跳转标志3
    GoTo 标志3
End If

' 跳转标志2
标志2:

' 移至“图片A”的中心点左键单击一次
MoveTo x + 0.5 * ImageWidth(imgPath), y + 0.5 * ImageHeight(imgPath)
LeftClick

' 如果范围内有多张“图片A”,点击最上方的“图片A”的中心点
While FindPic(startX, startY, endX, endY, imgPath, 0.9, x, y)
    MoveTo x + 0.5 * ImageWidth(imgPath), y + 0.5 * ImageHeight(imgPath)
    LeftClick
Wend

' 如果只有一张,延迟5秒后跳回标志1
Delay 5000
GoTo 标志1

' 跳转标志3
标志3:

' 移至指定坐标(x, y)左键单击一次
MoveTo 100, 100 ' 将这里的坐标替换为所需的(x, y)坐标
LeftClick

' 延迟2秒后跳回标志1
Delay 2000
GoTo 标志1

' 函数定义:查找图片
Function FindPic(x1, y1, x2, y2, picPath, similarity, ByRef outX, ByRef outY)
    ' 调用按键精灵内置的FindPic函数
    FindPic = Plugin.FindPic(x1, y1, x2, y2, picPath, similarity, outX, outY)
End Function

' 函数定义:获取图片宽度
Function ImageWidth(picPath)
    ' 通过读取图片文件获取其宽度
    ImageWidth = Plugin.ImageWidth(picPath)
End Function

' 函数定义:获取图片高度
Function ImageHeight(picPath)
    ' 通过读取图片文件获取其高度
    ImageHeight = Plugin.ImageHeight(picPath)
End Function

' 函数定义:延迟指定毫秒
Sub Delay(ms)
    Sleep ms
End Sub
xbang 发表于 2024-7-16 07:50
stonecub 发表于 2024-7-16 07:59
试试 万能按键模拟器 这个简单 http://www.8yy3.com/html/75390248.html
fengwolf3 发表于 2024-7-16 08:51
# 跳转标志1
标志1:
# 设定搜索范围
搜索范围: 0, 0, 500, 500
# 在范围内搜索图片A
搜索图片: "图片A"
如果找到图片A:
    跳转到 标志2
否则:
    跳转到 标志3

# 跳转标志2
标志2:
# 鼠标移至图片A的中心点并左键单击
鼠标移动至图片中心: "图片A"
左键单击一次
如果存在多张图片A:
    # 移至最上方图片A的中心点并左键单击
    鼠标移动至最上方图片中心: "图片A"
    左键单击一次
否则:
    # 延迟5秒后跳转到标志1
    延迟: 5000
    跳转到 标志1

# 跳转标志3
标志3:
# 鼠标移至指定坐标处并左键单击
鼠标移动至坐标: x, y
左键单击一次
# 延迟2秒后跳转到标志1
延迟: 2000
跳转到 标志1




请注意,脚本中的"图片A"、x和y坐标需要您根据实际情况进行替换。另外,此脚本仅提供了基本逻辑的框架,实际应用中可能需要根据具体情况进行调整和优化。
 楼主| wsdsl1 发表于 2024-7-16 16:25
fengwolf3 发表于 2024-7-16 08:51
# 跳转标志1
标志1:
# 设定搜索范围

你这样的无法运行
wuming6534 发表于 2024-7-16 17:18
要下班了,明天帮你写
wuming6534 发表于 2024-7-17 08:26
Rem 标志1
While true
    FindPic 0,0,1920,1080,"Attachment:\图片A.bmp",0.6,logX,logY//找图范围、精确度自己更改
If logX > 0 And logY > 0 Then
Goto 标志2
Else
Goto 标志3
End If
    Wend
    If true Then
End If
Rem 标志2
FindPic 0,0,1920,1080,"Attachment:\图片A.bmp",0.6,intX,intY//找图范围、精确度自己更改
If intX > 0 And intY > 0 Then
MoveTo intX,intY//图片左上角坐标,中心点坐标自己计算偏移量进行加减
End If
Delay 200
LeftClick 1
Delay 5000
Goto 标志1
Rem 标志3
MoveTo x,y//坐标自己填
Delay 200
LeftClick 1
Delay 2000
Goto 标志1

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
wsdsl1 + 1 + 1 因为未满足多张图片A则选择最上方图片A的条件,所以只能给你评分了

查看全部评分

 楼主| wsdsl1 发表于 2024-7-21 09:35
wuming6534 发表于 2024-7-17 08:26
Rem 标志1
While true
    FindPic 0,0,1920,1080,"Attachment:\图片A.bmp",0.6,logX,logY//找图范围、精 ...

这几天比较忙,还没测试过,等测试过没问题就给你
 楼主| wsdsl1 发表于 2024-7-21 09:36
xxl1039 发表于 2024-7-17 08:49
' 定义搜索范围的坐标
Dim startX, startY, endX, endY
startX = 0

这几天忙还没测试过,等测试过后,因为上面一位坛友先发的帖,如果测试不通过而你的没问题,我就把最佳答案给你
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-15 11:49

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表