【问题标题】:pywin32: Get color by using coordinatespywin32:使用坐标获取颜色
【发布时间】:2013-03-03 00:26:26
【问题描述】:

我编写这段代码是为了在 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)

还是谢谢

【问题讨论】:

    标签: python colors pywin32


    【解决方案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))。

    【讨论】:

      猜你喜欢
      • 2017-04-19
      • 2020-10-19
      • 2016-05-02
      • 1970-01-01
      • 2013-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多