Page 1 of 1

Trying to do a image search with V2 scripts - keep getting error

Posted: 03 May 2024, 14:26
by mikeseo

Code: Select all

#Requires AutoHotkey v2.0

    ; Define the area for the image search
    left := 0
    top := 0
    right := 1000
    bottom := 600
    imagePath := "img.png"  ; Adjust the path to where your image is stored

    ; Perform the image search within the specified area
    ImageSearch &OutputVarX, &OutputVarY, left, top, right, bottom, img.png

    ; Check if the image was found
    if (foundX != "")
    {
        ; Image found, click on the coordinates
        MouseClick "left", &OutputVarX, &OutputVarY
        MsgBox "Image found and clicked "
    }
    else
    {
        ; Image not found
        MsgBox "Image not found."
    }
return
[Mod edit: Added [code][/code] tags. Please use them yourself when posting code!]

I have the above code, the img.png is the same folder as the ahk file.
But when I run it, the AHK app keeps on showing error message

Warning: This variable appears to never be assigned a value.
▶ 011: ImageSearch(&OutputVarX, &OutputVarY, left, top, right, bottom, img.png)


What could be wrong?

Here is a recording of the error in video
https://vento.so/view/a5bfb0a8-3f94-42c3-bb04-0858598c9e81?utm_medium=share

Re: Trying to do a image search with V2 scripts - keep getting error

Posted: 03 May 2024, 14:50
by gregster
As a string, the file name should be quoted.
Compare https://www.autohotkey.com/docs/v2/lib/ImageSearch.htm#ExBasic

Or simply use the variable imagePath which you defined earlier (unquoted).

Re: Trying to do a image search with V2 scripts - keep getting error

Posted: 03 May 2024, 23:44
by mikeseo
Thanks for the reply
Do I have to focus the window first?

Re: Trying to do a image search with V2 scripts - keep getting error

Posted: 04 May 2024, 02:17
by boiler
If your search rectangle is based on a particular window, then yes. If they’re relative to the screen, then the window doesn’t need focus, but it must be visible. And you would need to set the CoordMode:

Code: Select all

CoordMode 'Pixel', 'Screen'

Re: Trying to do a image search with V2 scripts - keep getting error

Posted: 04 May 2024, 04:06
by mikeseo
Does the photo need to be a png?

I followed @gregster link and copied to the following:

Code: Select all

CoordMode "Pixel"  ; Interprets the coordinates below as relative to the screen rather than the active window's client area.
try
{
    if ImageSearch(&FoundX, &FoundY, 0, 0, 600, 450, "stop.png")
        MsgBox "The icon was found at " FoundX "x" FoundY
    else
        MsgBox "Icon could not be found on the screen."
}
catch as exc
    MsgBox "Could not conduct the search due to the following error:`n" exc.Message
Below is a screen recording video

https://vento.so/view/1a10729d-f3ba-4ed7-a44d-ff10f3305a7e?utm_medium=share

What could went wrong?

Screen resolution?

The button is not actually an image, it is a text button.

[Mod edit: Added [code][/code] tags. Please use them yourself when posting code!]

Re: Trying to do a image search with V2 scripts - keep getting error

Posted: 04 May 2024, 04:51
by boiler
Definitely use png instead of jpg because jpg is lossy and will not match the image exactly.

It could be that the icon is rendered differently every time it is displayed. Or if you have a Windows scaling factor of other than 100%, then that definitely would cause a problem.

How did you capture your png file? If you post both your stop.png file as an attachment and a screenshot of your desktop as a png, then we can see if they should be able to match or not.