首页 > 解决方案 > 如何使用图像搜索自动热键功能等待图像出现在屏幕上

问题描述

我是autohotkey的新手,我知道的很少,我需要在我工作的公司制作一个宏,我需要使用autohotkey来制作那个宏。

我想做的就是这个。我需要访问一个保留在我的计算机上的 JAVA 应用程序,但是这个应用程序需要一些时间才能启动,有时它很快有时很慢我不知道加载需要多长时间。

我需要脚本做的是等待我捕获的图像在应用程序加载时出现在屏幕上,而该图像看起来不像是等到它出现在屏幕上。

我研究了很多关于自动热键和图像搜索功能,但我不太明白如何使用它

imagefound := false
time_loopStart := A_TickCount
timeout := 6000
sleep_after_each_imagesearch := 300
CoordMode, Pixel
Loop{
     ImageSearch x,y, A_ScreenWidth, A_ScreenHeight, C:\test\Javalogin.png
     if ErrorLevel = 0{
        imagefound := true
        break
  }
  if(A_TickCount - time_loopSart > timeout){
     break

  }
  sleep %sleep_after_each_imagesearch%
}
MsgBox, I found the picture

我在互联网上找到的这个脚本

如果脚本需要重做等,我接受建议。

我只需要让脚本等待图像出现

如果你有人帮助我留下我的感谢:)

标签: autohotkey

解决方案


这是我正在使用的类似脚本。

基本上,它会查找图片,如果找到,它会将找到的坐标放在 OutputVarX 和 OutputVarY 中。如果没有找到,则值为 0。

Loop,
{
   ; first two store the found position, next 4 as the search area in pixels, then the file.
   ImageSearch, OutputVarX, OutputVarY, 0, 0, 600, 600, e:\play.bmp

   ; "0" means no match
   if (OutputVarX > 0) { 

       msgbox, %OutputVarX%, %OutputVarY%
       break

   }

   sleep, 200 
} 

一些提示:

  • 制作显示图像的计算机屏幕截图。将其裁剪为元素的大小,然后将其保存为未压缩。如果以某种方式呈现原始 png 文件,则查找该文件可能会失败。
  • 阅读 ImageSearch 上的帮助,了解如何让图像有所不同。

推荐阅读