隐式等待 代替sleep

原理:通过识图实现   当屏幕出现该图片时 表示该动作完成

需要修改array1里面的图片位置 + 自己要执行的操作

#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn  ; Enable warnings to assist with detecting common errors.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.


;用于存放图片 用于记录每个步骤会产生的新的图片 表示这一步骤完成
Array1 := ["F:\yxc_Code\一些没用的脚本\自动识别图片_autohotkey\input.png","F:\yxc_Code\一些没用的脚本\自动识别图片_autohotkey\select.png"]

F3::
ii := 1
breaktime := 1 ;用于超时退出的

MouseGetPos, NowX, NowY  ;记录鼠标的原始位置
while(ii <= Array1.Length())
{
	SysGet, VirtualWidth, 78 ; 虚拟屏幕的宽度和高度, 单位为像素. 虚拟屏幕是所有监视器的边框
	SysGet, VirtualHeight, 79 ; 度量是虚拟屏幕左上角的坐标
  
	__ImageFilePath:= Array1[ii] ;获取图片
	Gui,add,picture,hwnd__mypic,%__ImageFilePath%
	if FileExist(__ImageFilePath){
    ;------↓↓↓↓↓↓↓↓↓-------你想要执行的动作---可以根据指定的需要进行修改--↓↓↓↓↓↓↓↓↓↓↓------
		ControlGetPos,,,__img_w,__img_h,,ahk_id %__mypic%
		CoordMode Pixel
		ImageSearch, __FoundX, __FoundY, 0, 0, VirtualWidth, VirtualHeight,%__ImageFilePath%
		CoordMode Mouse
		PicX:=__FoundX + __img_w/2  ;图片的中心位置坐标
		PicY:=__FoundY + __img_h/2
		if (ErrorLevel=0) {
			CoordMode, Mouse , Screen
			__ClickX:=PicX
			__ClickY:=PicY
			__ClickTimes:=1
      Click %__ClickX%, %__ClickY%, %__ClickTimes%
      ;------↑↑↑↑↑↑↑↑↑↑↑↑↑↑-------你想要执行的动作---可以根据指定的需要进行修改----↑↑↑↑↑↑↑↑↑↑----
      
			ii := ii + 1
		}
		else { ;没从屏幕中找到该图片
			Sleep 100
			breaktime := breaktime + 1
			if (breaktime == 20)  ;最长等待时间为 20 * 100 = 2s
			{
				ToolTip, 操作失败....
				Sleep 1000
				ToolTip
				break
			}
		}
	}
	else 
  { 
    ; 设置的图片路径没找到  这是你存放 Array1的内容
    MsgBox "图片路径设置不对。。。"
	}
}
;-----↓↓↓↓↓↓↓↓↓↓↓----这段代码可以不要-----
if (ii == Array1.Length() + 1)  ;上述操作完成后 返回鼠标的原始位置
{
  CoordMode, Mouse , Screen
  __ClickX:=NowX
  __ClickY:=NowY
  __ClickTimes:=0
  Click %__ClickX%, %__ClickY%, %__ClickTimes%
}
;-----↑↑↑↑↑↑↑↑↑↑↑↑----这段代码可以不要-----
return

 

给TA捐赠
共{{data.count}}人
人已捐赠
其他

应用窗口置顶且加边框提醒

2022-5-23 9:15:03

其他

Excel借用ahk远程调用python

2022-5-26 11:13:42

2 条回复 A文章作者 M管理员
  1. hexuren

    是一个不错的思路

  2. hexuren

    图片正文中也要放一下,上面那个只是缩略图

个人中心
购物车
优惠劵
有新私信 私信列表
搜索