Python 如何使用win32gui.ReleaseDC(,)

Python 如何使用win32gui.ReleaseDC(,),python,Python,当我使用代码时,我得到一个错误('GetPixel','No error messages available'): color=win32gui.GetPixel(win32gui.GetDC(win32gui.GetActiveWindow()),x,y) 据我所知,我应该在每次使用GetPixel时释放DC(win32gui.ReleaseDC(,))。但我应该使用什么作为窗口句柄和设备上下文句柄呢 据我所知,我可以通过使用win32gui.GetActiveWindow()获得窗口的句柄

当我使用代码时,我得到一个
错误('GetPixel','No error messages available')

color=win32gui.GetPixel(win32gui.GetDC(win32gui.GetActiveWindow()),x,y)

据我所知,我应该在每次使用GetPixel时释放DC(win32gui.ReleaseDC(,))。但我应该使用什么作为窗口句柄和设备上下文句柄呢

据我所知,我可以通过使用win32gui.GetActiveWindow()获得窗口的句柄,对吗?但我不知道如何处理设备上下文

守则:

def get_position_and_color():
    a=0
    while a<=3:
        sleep(1)
        x, y = win32api.GetCursorPos()
        color = win32gui.GetPixel(win32gui.GetDC(win32gui.GetActiveWindow()), x , y)
        print(str(a)+' '+str(x)+','+str(y)+','+str(color))
        # print(a)
        a=a+1


get_position_and_color()
def get_position_和_color():
a=0
而a谢谢你的帮助@AKX。
我想我找到了答案。
我在VBA中有相同的代码,它从来不会失败,但在python中。。。
我只是比较了两种代码。
VBA:

lDC=GetWindowDC(0) 调用GetCursorPos(pLocation) lColour=GetPixel(lDC,pLocation.x,pLocation.y) Debug.Print(i&“=”&pLocation.x&“=”&pLocation.y&“=”&lColour&“=”)

Python(见上文)
我使用了win32gui.GetActiveWindow()而不是“0”。我猜坐标超出了“activewindow”的边界。

你到底想在这里实现什么?首先,
GetCursorPos()
返回屏幕坐标;如果使用HWND调用
GetDC()
,则DC的坐标将不是屏幕坐标,
GetPixel()
可能会尝试访问超出边界的内容。我使用此代码按颜色检测按钮并按下它们。这是唯一的选择(大多数按钮位于远程计算机上,我可以通过远程桌面访问)。在错误出现之前,它一直工作得很好。现在我根本无法使用getpixel。是的,
GetDC(NULL)
返回屏幕DC。很高兴你找到了答案!