pywin32:通过坐标获取颜色
我写了这段代码,让鼠标在坐标 (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 个回答
3
根据你的回答
color = win32gui.GetPixel(win32gui.GetDC(win32gui.GetActiveWindow()), 100 , 200)
你得到的是一个整数,这对某些人(像我这样的人)来说可能不太友好。
如果你想要一个RGB元组,可以查看这个回答:RGB整数转RGB - Python。
def rgbint2rgbtuple(RGBint):
blue = RGBint & 255
green = (RGBint >> 8) & 255
red = (RGBint >> 16) & 255
return (red, green, blue)
最后,你还得检查这个颜色是不是红色,如果你也接受类似的颜色,那就可能不太简单了,因为不仅仅是简单的纯红色(也就是(255, 0, 0))。