pywin32:使用坐标获取颜色

时间:2013-03-03 00:26:27

标签: python colors pywin32

我编写了这段代码,用鼠标点击x,y位置100,200,之后我按下退格键:

import win32api, win32con
import time

def click(x,y):
    win32api.SetCursorPos((x,y))
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN,x,y,0,0)
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP,x,y,0,0)

def press_back():
    win32api.keybd_event(0x08,0,0,0) #click backspace
    time.sleep(0.1)
    win32api.keybd_event(0x08,0,2,0) #release backspace

click(100,200)
press_back()

我现在要做的是检查100,200处的颜色是否为红色。我怎么能这样做?

编辑: 我有解决方案......

color = win32gui.GetPixel(win32gui.GetDC(win32gui.GetActiveWindow()), 100 , 200)

非常感谢

1 个答案:

答案 0 :(得分:1)

答案

color = win32gui.GetPixel(win32gui.GetDC(win32gui.GetActiveWindow()), 100 , 200)

你得到一个整数,对于某人(像我一样)可能不是很友好。

如果您想要RGB元组,可以查看以下答案:RGB Int to RGB - Python

def rgbint2rgbtuple(RGBint):
    blue =  RGBint & 255
    green = (RGBint >> 8) & 255
    red =   (RGBint >> 16) & 255
    return (red, green, blue)

最后,你要检查颜色是否为红色,如果你也接受相似的颜色,那不仅仅是红色(即(255,0, 0))。