2024/8/3 05:56:14
使用autoit的截屏函数查看能否正常截图到完整屏幕,如果不能截图不完整说明是屏幕缩放问题
#include <ScreenCapture.au3>
Local $screenWidth = @DesktopWidth
Local $screenHeight = @DesktopHeight
_ScreenCapture_Capture(@ScriptDir & "\screenshot.png", 0, 0, $screenWidth-1, $screenHeight-1)
通过以下代码能够解决
#include ".\ImageSearch\ImageSearch.au3"
$sImage = GetFullPath("up_win.png")
Local $screenWidth = @DesktopWidth
Local $screenHeight = @DesktopHeight
$screen_scale = 1 / 1.25 #1.25值取自屏幕缩放为125%
$screenWidth = $screenWidth / $screen_scale
$screenHeight = $screenHeight / $screen_scale
Local $result = _ImageSearchArea($sImage, 1, 0, 0, $screenWidth-1, $screenHeight-1, 0, 0)
If IsArray($result) Then
    $scaledX = $result[0] * $screen_scale
    $scaledY = $result[1] * $screen_scale
    MouseMove($scaledX, $scaledY)
Else
    MsgBox(0, "Error", "Image not found after")
EndIf
这里调用的imgsearch库是来自https://github.com/TheKojukinator/ImageSearch
通过测试,发现在vs中添加外部工具时配置au3就不能识别到位置
#include <_ImageSearch_UDF.au3>
$sImage = @ScriptDir & "\run.png"
Local $screenWidth = @DesktopWidth
Local $screenHeight = @DesktopHeight
$screen_scale = 1 / 1.25
$screenWidth = $screenWidth / $screen_scale
$screenHeight = $screenHeight / $screen_scale
Local $return = _ImageSearch_Area($sImage,0,0,$screenWidth,$screenHeight)
If $return[0] = 1 Then
    MouseMove($return[1]*$screen_scale, $return[2]*$screen_scale)
EndIf