如何使用win32gui.ReleaseDC(,)

2024-10-02 00:24:20 发布

您现在位置:Python中文网/ 问答频道 /正文

当我使用代码时,我得到一个error('GetPixel', 'No error message is 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()

Tags: andno代码messagegetpositionerror句柄
1条回答
网友
1楼 · 发布于 2024-10-02 00:24:20

谢谢你的帮助@AKX。 我想我找到了答案。 我在VBA中有相同的代码,它从来不会失败,但在python中。。。 我只是比较了两种代码。 VBA:

lDC=GetWindowDC(0) 调用GetCursorPos(pLocation) lColour=GetPixel(lDC,pLocation.x,pLocation.y) 调试.打印(i&;“=”&;pLocation.x&;“=”&;pLocation.y&;“=”&;L颜色(“=”)

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

相关问题 更多 >

    热门问题