作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个包含复选框 (System.Windows.Forms.Checkbox) 的 .NET 应用程序。此组件 (WindowsForms10.BUTTON.app.0.378734a1) 在 AutoHotKEy 中无法使用“Control,Check”或“ControlGet,Checked”直接控制。
有没有办法使用 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
我还假设未经检查的背景颜色是灰色阴影。复选标记呈绿色。
因此,如果这些假设中的任何一个不正确,那么它就不会起作用。
关于.net - 如何从 AutoHotKey 控制 .NET 复选框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2316822/
我是一名优秀的程序员,十分优秀!