チェックボックス(System.Windows.Forms.Checkbox)を含む.NETアプリケーションがあります。このコンポーネント(WindowsForms10.BUTTON.app.0.378734a1)は、「Control、Check」または「ControlGet、Checked」を使用してAutoHotKEyで直接制御することはできません。
CallDLL、またはAutoHotKey内のある種のCLRホスティングを使用してこのコンポーネントを制御する方法はありますか?
チェックボックス(System.Windows.Forms.Checkbox)を含む.NETアプリケーションがあります。このコンポーネント(WindowsForms10.BUTTON.app.0.378734a1)は、「Control、Check」または「ControlGet、Checked」を使用してAutoHotKEyで直接制御することはできません。
CallDLL、またはAutoHotKey内のある種のCLRホスティングを使用してこのコンポーネントを制御する方法はありますか?
私は次の関数を使用することになりました:
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
また、チェックされていない背景色は灰色の色合いだと思います。そして、チェックマークが緑の色合いになっていること。
したがって、これらの仮定のいずれかが正しくない場合、それは機能しません。