按键精灵找图

2024-05-05 13:13

1. 按键精灵找图

突破找图限制【原创】(361度 按键精灵找图系列之二)
  这文章我昨天就写好了,今天我才发现晨风以发过一个类似的帖子。不过他发脚本全是goto,看得我头晕,到现在我都没看得全明白,而且那脚本只有图片计数功能,所以我还是把自己的文章贴出来。
  按键精灵的找图功能只能输出找到的第一个图的坐标,如何让它找输出找图范围内所有符合的图片坐标呢?我有2个方案:
  1、把找图的范围设定成和图片一样大,然后把这个范围的框以一个次移一个像素的方式,移遍整个找图范围,每移一次就找一次图。
  2、想办法让找图的命令在找到第一个图后继续找下去。
  我首先试的是第一个方案,本以为它会运行得很快,但运行的速度让我难以忍受。以它的速度,扫完全屏要几个小时,运行了一会儿我就把它关了。分析了下运行慢的原因:1、每次找图都要重新分析图片,这个找图方案运行找图功能的次数太多,导致分析图片用了过多的时间;2、由于这是脚本,不是exe文件,每执行一条命令都需要先读一条语句,翻译后再执行,这个方案写的脚本虽然不长,但运行的时候要执行循环很多次才能扫遍整个找图范围。
  所以,最后采用的是第二方案,详细的时候方法是:程序找到一个图后,找图范围的上边界就重新设为该图坐标的纵坐标加1,然后继续找图。参考脚本如下:
VBS y0=0
VBS Dim x(),y()
//找到的图片横坐标和纵坐标分别存在x()数组和y()数组中
VBS i=0
//找到的图片数量存在变量i中
VBS pd=1
VBSCall FindPic(0,y0,1024,768,"发.bmp",1,xz,yz)
If xz<0 or yz<0
MessageBox "没找到图形"
EndScript 
EndIf 
//7到11行可以不要
While pd=1
VBSCall FindPic(0,y0,1024,768,"发.bmp",1,xz,yz)
If xz>=0 and yz>=0
VBS ReDim Preserve x(i)
VBS ReDim Preserve y(i)
VBS x(i)=xz
VBS y(i)=yz
VBS i=i+1
VBS y0=yz+1
Else 
VBS pd=0
EndIf 
EndWhile 
//下面的命令是用于显示找图结果
VBSCall RunApp("notepad.exe")
Delay 1000
VBS n=0
While n<i
SayString x(n)
SayString ","
SayString y(n)
SayString "|"
VBS n=n+1
EndWhile 
SayString i
  此脚本是找图范围是0,0,1024,768时的找图脚本,找图范围不同时要改动部分参数。
  此脚本的优点是找图速度快,但有死区,表现在找不到和已找到的图右侧完全并排的图。由于该程序的死区范围很小,所以对所找的图在屏幕内并排的可能性很小时,可以采用。
  如果另外加些扫死区部分的命令,就可以消除上面脚本的死区,参考脚本如下:
VBS y0=0
VBS Dim x(),y()
//找到的图片横坐标和纵坐标分别存在x()数组和y()数组中
VBS i=0
//找到的图片数量存在变量i中
VBS pd=1
VBS Dim pd1
VBS Dim x01
VBSCall FindPic(0,y0,1024,768,"发.bmp",1,xz,yz)
If xz<0 or yz<0
MessageBox "没找到图形"
EndScript 
EndIf 
//9到13行可以不要
While pd=1
VBSCall FindPic(0,y0,1024,768,"发.bmp",1,xz,yz)
If xz>=0 and yz>=0
VBS ReDim Preserve x(i)
VBS ReDim Preserve y(i)
VBS x(i)=xz
VBS y(i)=yz
VBS i=i+1
VBS y0=yz+1
VBS x01=xz+1
VBS pd1=1
While pd1=1
VBSCall FindPic(x01,yz,1024,yz+12,"发.bmp",1,xz1,yz1)
//12是图片"发.bmp"的高度
If xz1>=0 and yz1>=0
VBS ReDim Preserve x(i)
VBS ReDim Preserve y(i)
VBS x(i)=xz1
VBS y(i)=yz1
VBS i=i+1
VBS x01=xz1+1
Else 
VBS pd1=0
EndIf 
EndWhile 
Else 
VBS pd=0
EndIf 
EndWhile 
//下面的命令是用于显示找图结果
VBSCall RunApp("notepad.exe")
Delay 1000
VBS n=0
While n<i
SayString x(n)
SayString ","
SayString y(n)
SayString "|"
VBS n=n+1
EndWhile 
SayString i
  此脚本完全消除了死区,但找图速度比前面的脚本慢点。
  用同样的方法也可以解决找色的问题。
  转贴本人的文章或脚本请注明原作者和出处

按键精灵找图

2. 按键精灵如何找多图?

如图:

注意修改图片路径及查找间隔。
//查找图一是否存在
FindPic 0,0,1024,768,"Attachment:\图一.bmp",0.9,intX,intY
If intX > 0 And intY > 0 Then 
	//找到了图一后,等待一段时间后,继续查找图二
	intX = 0 : intY = 0
	Delay 1000//等待时间(ms)
	//查找图二是否存在
	FindPic 0,0,1024,768,"Attachment:\图二.bmp",0.9,intX,intY
	If intX > 0 And intY > 0 Then 
		//找到了图二后,等待一段时间后,继续查找图三
		intX = 0 : intY = 0
		Delay 1000//等待时间(ms)
		//查找图三是否存在
		FindPic 0,0,1024,768,"Attachment:\图三.bmp",0.9,intX,intY
		If intX > 0 And intY > 0 Then 
			//找到了图三。
			intX = 0 : intY = 0
			MessageBox "已找到图三"
		End If
	End If
End If

3. 按键精灵电脑怎么用

如何用按键精灵来完成自动化脚本,附带项目

按键精灵电脑怎么用

4. 按键精灵找图点击怎么设置 按键精灵找图点击设置方法

 按键精灵是一款很好用的鼠标点击助手,按键精灵要在区域内找到图片点击,该怎么设置和写入脚本。今天小编就为大家分享按键精灵找图点击设置方法,想学习的来了解下吧!
    按键精灵找图点击设置方法介绍: 
   1、首先明确编写脚本的目的,本例子中主要是完成以下的目标:找到图片,并用鼠标左击一次新建一个脚本,点击上方的【抓抓】
                2、在图像下,使【抓抓】在截取窗口的前面,然后点击【截屏】
                3、框选出要截取的图片,选择【位图另存为】
                4、命名图片,然后保存
                5、关闭【抓抓】,点击【附件】
                6、点击【添加】,将刚才保存的图片插入脚本中
                7、回到脚本,点击【颜色/图形命令】
                8、在第一个下拉菜单中选择【区域找图】
                9、然后选择找图的区域,如果需要在整个屏幕找图,需要将上面的数值设为电脑的分辨率,如果只需要在一个区域内找图,可以用【抓抓】确定区域坐标
                10、然后将红框内的文件名改为图片的名称,可以调整图片的相似度,如果图片在所找的区域内没有相似的图片,就可以调得低一些,反之就调得高一些
                11、注意要勾丫使用附件图片路径】,然后点击插入
                12、现在就只需要添加鼠标点击的命令了,在【则】后面添加语句,也是图中箭头指示的位置
                按键精灵使用图文教程 按键精灵脚本
   13、点击鼠标命令下的移动命令,不需要管当前的坐标值
                14、在【源文件】窗口下,将具体的数值替换成【intX+20,intY+20】因为脚本找到图后,会将图片所在的左上角的坐标位置赋值给X,Y两个变量,如果直接输入【intX,intY】鼠标点击的时候就会点击图片的左上角,就有可能点不到图片,所以要X,Y设置一个偏移量,这个偏移量是根据图片大小来设置的,如果图片面积小,偏移量大,也是点击不到图片的,所以设置完成后,需要测试一下
                15、然后设置一个延时时间,自己掌握长短
                16、接着在输入一个鼠标单击的命令即可
                17、按键精灵如何找图这个脚本就编写好了按键精灵如何找图