How do you control checkbox.NET from AutoHotKey?

I have a .NET application that contains a checkbox (System.Windows.Forms.Checkbox). This component (WindowsForms10.BUTTON.app.0.378734a1) is not directly controlled in AutoHotKEy using "Control, Check" or "ControlGet, Checked".

Is there a way to control this component using CallDLL or some kind of CLR host in AutoHotKey?

+3
source share
1 answer

I ended up using the following function:

IsChecked(Check_box_name)
{
    ControlGetPos,X,Y,W,H,%Check_box_name%
    Loop % H - 7
    {
        CY := Y + 1 + A_index
        Loop % H - 7
        {
            CX := X + 1 + A_index
            PixelGetColor,color,%CX%,%CY%,RGB
            R := (color >> 16) & 0xFF
            G := (color >> 8) & 0xFF
            B := color & 0xFF
            If (Abs(R - B) < 10) && (Abs(R - G) > 10)
            {
                return true
            }
        }
    }
    return false
}

I use height (H) as the width of the checkbox. I subtract 1pixel for the border and 3 more pixels for the field. Therefore: H - (1 + 2 * 3) = H - 7

, - . .

, - , .

+3

Source: https://habr.com/ru/post/1734016/


All Articles