找回密码
 加入
搜索
查看: 1146|回复: 10

[AU3基础] afan大大的图像识别用在企业微信会有坐标偏移

[复制链接]
发表于 2022-5-26 22:15:29 | 显示全部楼层 |阅读模式
本帖最后由 pigWoWo 于 2022-5-26 22:19 编辑



请问大家有 研究过 企业微信的 查找图像,然后点击么?
使用了 Afan 大大的 函数,发现 会有偏移 。
mouseclick 找不到准确的 坐标 。

demo 代码
#Region ;**** 编译指令由 by AutoIt3Wrapper_GUI 创建 ****
#AutoIt3Wrapper_Icon=Z:\vmwareShare\softmgr.ico
#AutoIt3Wrapper_Res_Language=2052
#EndRegion ;**** 编译指令由 by AutoIt3Wrapper_GUI 创建 ****
#cs ----------------------------------------------------------------------------

 AutoIt Version: 3.3.14.5
 Author:         myName

 Script Function:
        Template AutoIt script.

#ce ----------------------------------------------------------------------------

; Script Start - Add your code below here

#include <MsgBoxConstants.au3>
#include<af_search_pic.au3>;包含阿福源代码文件到脚本中
#include <File.au3>

While 1
$t=TimerInit()
search_pic (0,0, @DesktopWidth, @DesktopHeight,@ScriptDir & "\AF1.bmp") ;search_pic($x1,$y1,$x2,$y2,$pic)"当前屏幕找图",说明:$x1:屏幕上的左上角X坐标,$y1:屏幕上的左上角Y坐标,$x2:屏幕上的右下角X坐标,$y2:屏幕上的右下角Y坐标,$pic:要找图的路径及名称,$aPosMsg:返回坐标值(X坐标,Y坐标,长,高)
If $aPosMsg<>"" Then
$array=StringSplit ($aPosMsg,",",2)
MouseMove($array[0],$array[1])
MouseMove($array[0],$array[1])
ConsoleWrite("Find it!" & TimerDiff($t)&@CRLF)

MouseClick("left", $array[0],$array[1])
_FileWriteLog("au3.log","mouseclick[Pos]  X:" & $array[0] & "Y:" & $array[1])
MsgBox($MB_SYSTEMMODAL, "标题", "此消息框在 10 秒后超时或选择<确定>按钮.", 10)

Local $aPos = MouseGetPos()
;MsgBox($MB_SYSTEMMODAL, "鼠标位置 x, y:", $aPos[0] & ", " & $aPos[1])
_FileWriteLog("au3.log","mouseGet[Pos]  X:" & $aPos[0] & "Y:" & $aPos[1]  )



_FileWriteLog("au3_Cha.log","差额[Pos]  X:" & $aPos[0] - $array[0]  & "Y:" & $aPos[1] -$array[1] )

_FileWriteLog("au3_ALL.log","mouseclick[Pos]  X:" & $array[0] & "Y:" & $array[1])
_FileWriteLog("au3_ALL.log","----------------------------"  )
_FileWriteLog("au3_ALL.log","mouseGet[Pos]  X:" & $aPos[0] & "Y:" & $aPos[1]  )
_FileWriteLog("au3_ALL.log","差额[Pos]  X:" & $aPos[0] - $array[0]  & "Y:" & $aPos[1] -$array[1] )


Else
ConsoleWrite("Sorry, Just Not Find ~~~" & TimerDiff($t)&@CRLF)
EndIf

Sleep(2000)

WEnd
 楼主| 发表于 2022-5-26 22:17:56 | 显示全部楼层


我这边试了下,是想实现 发现某个图标后,右键 -> 直接移除的效果。因为类似垃圾短息。

但是发现 偏移比较厉害。

然后 逐个图标 查询,发现也是类似情况,不是发现图标后,就可以直接
点击中的。

请教各位大大

发表于 2022-5-26 22:21:03 | 显示全部楼层
是用的 AuScreenMonitor 屏幕巡查?
发表于 2022-5-26 22:22:48 | 显示全部楼层
那个是阿福的~
 楼主| 发表于 2022-5-26 22:25:11 | 显示全部楼层
感谢 Afan 大大 光临
 楼主| 发表于 2022-5-26 22:25:38 | 显示全部楼层
afan 发表于 2022-5-26 22:21
是用的 AuScreenMonitor 屏幕巡查?

是用的 阿福搜图
发表于 2022-5-26 22:35:06 | 显示全部楼层
pigWoWo 发表于 2022-5-26 22:25
是用的 阿福搜图

可能是DPI缩放的问题,前面加一行禁用DPI感知
 楼主| 发表于 2022-5-26 22:36:38 | 显示全部楼层
afan 发表于 2022-5-26 22:21
是用的 AuScreenMonitor 屏幕巡查?

A 大 ,用了 屏幕 巡查 OK 哈哈 ,谢谢 ~
 楼主| 发表于 2022-5-26 23:14:04 | 显示全部楼层
afan 发表于 2022-5-26 22:35
可能是DPI缩放的问题,前面加一行禁用DPI感知

感谢 A 大。 我用 您的 屏幕 巡查 软件 ,达到了 识别的目的。
请问一下,进一步是否可以咨询。
我是希望 可以 识别两个 以上的图片。
目前 软件 可以 支持 一个 图片识别。



发表于 2022-5-26 23:34:26 | 显示全部楼层
pigWoWo 发表于 2022-5-26 23:14
感谢 A 大。 我用 您的 屏幕 巡查 软件 ,达到了 识别的目的。
请问一下,进一步是否可以咨询。
我是 ...

功能倒是不难实现,但是做到工具上就麻烦了,那就需要一个任务列表,修改的工作量太大。这只是一个调试辅助测试工具,主要用来验证可行性及采集需要的各类数据,验证通过之后具体的任务还是用代码执行更好。
 楼主| 发表于 2022-5-26 23:44:26 | 显示全部楼层
afan 发表于 2022-5-26 23:34
功能倒是不难实现,但是做到工具上就麻烦了,那就需要一个任务列表,修改的工作量太大。这只是一个调试辅 ...

嗯嗯,谢谢 A 大
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-22 16:07 , Processed in 0.136983 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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