PixelGetColor

获取指定的 X 和 Y 坐标处像素的颜色.

Color := PixelGetColor(X, Y , Mode)

参数

X, Y

类型: 整数

目标像素的 X 和 Y 坐标. 坐标相对于活动窗口的客户端区域, 除非曾使用 CoordMode 改变了这个设置.

Mode

类型: 字符串

如果为空或省略, the pixel is retrieved using the normal method. 否则, 请指定 one个或多个下列单词. 如果含有多个单词, 则它们之间使用空格分隔(例如 "Alt Slow").

Alt: 使用另一种方法获取颜色, 当在特殊类型的窗口中正常的方法获取到无效或错误的颜色时, 应考虑使用这种方法. 此方法比正常方法大约慢 10%.

Slow: 使用一种更精细复杂的方法获取颜色, 在某些全屏应用程序中其他方法失败时, 此方法可能有效. 此方法比正常方法大约慢三倍. 注: Slow 方法优先于 Alt, 所以此时不需要指定 Alt.

返回值

类型: 字符串

该函数返回一个十六进制数字字符串, 代表像素的 RGB(红-绿-蓝) 颜色. 例如, 紫色被定义为 0x800080, 因为它的红色和蓝色分量的强度为 0x80(128) 而绿色分量的强度为 0x00(0).

错误处理

在失败时抛出 OSError.

备注

像素必须是可见的; 换句话说, 无法获取隐藏在其他窗口背后的窗口的像素颜色. 与之相比, 鼠标光标下方的像素颜色通常可以检测出来. 例外情况是游戏的指针, 在大多数情况下它会遮挡其下方的任何像素.

使用 Window Spy(从托盘图标菜单打开) 或参阅本页底部的示例可以确定当前屏幕上的颜色.

已知限制:

PixelSearch, ImageSearch, CoordMode, MouseGetPos

示例

按下热键显示位于鼠标光标当前位置的像素的颜色.

^!z::  ; Control+Alt+Z 热键.
{
    MouseGetPos &MouseX, &MouseY
    MsgBox "The color at the current cursor position is " PixelGetColor(MouseX, MouseY)
}