3

チェックボックス(System.Windows.Forms.Checkbox)を含む.NETアプリケーションがあります。このコンポーネント(WindowsForms10.BUTTON.app.0.378734a1)は、「Control、Check」または「ControlGet、Checked」を使用してAutoHotKEyで直接制御することはできません。

CallDLL、またはAutoHotKey内のある種のCLRホスティングを使用してこのコンポーネントを制御する方法はありますか?

4

1 に答える 1

3

私は次の関数を使用することになりました:

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
}

チェックボックスの幅として高さ(H)を使用しています。境界線を1ピクセル、余白をさらに3ピクセル差し引きます。したがって:H-(1 + 2 * 3)= H-7

また、チェックされていない背景色は灰色の色合いだと思います。そして、チェックマークが緑の色合いになっていること。

したがって、これらの仮定のいずれかが正しくない場合、それは機能しません。

于 2010-02-25T02:34:36.873 に答える