从背景中的 window 获取像素颜色

Get pixel color from window in background

我想从特定的 window 中获取 Python 中特定像素的颜色, 在背景中,使用其 X Y 坐标,我正在使用 Windows10。 (我正在尝试编写一个脚本, 将 window 放在前面,当特定像素发生变化时)

我尝试修改下面的这段代码,但我无法从其他 window 获取信息,只能从屏幕上获取信息。

def get_pixel_colour(i_x, i_y):
    import win32gui
    i_desktop_window_id = win32gui.GetDesktopWindow()
    i_desktop_window_dc = win32gui.GetWindowDC(i_desktop_window_id)
    long_colour = win32gui.GetPixel(i_desktop_window_dc, i_x, i_y)
    i_colour = int(long_colour)
    return (i_colour & 0xff), ((i_colour >> 8) & 0xff), ((i_colour >> 16) & 0xff)

print get_pixel_colour(0, 0)

我遇到了同样的问题,我创建了一个库来使用最小化 windows,这是完整的代码

https://github.com/mariobarbosa777/minwinpy/blob/master/minwinpy.py

你必须 运行 作为管理员 vs-code 和“你的 windows 名字”

要解决您获取彩色像素的问题,请下载 minwinpy.py 并使用此代码:

from minwinpy import minwinpy

#x, y pixel to get RGB color 
pos=[497,72]

WindowsName="Your windows name"
yourWindows= minwinpy(WindowsName)

print (yourWindows.GetPixelRGBColor(pos))