Python-检测最小化按钮上的点击

问题描述

我想用 win32gui 检测对任何窗口最小化按钮的点击。 我有一个使用 WM.NCHITTEST 的想法,但我不知道如何使用它。

解决方法

我想通了。

以下代码段首先等待右键单击,然后获取单击位置(x 轴和 y 轴),然后执行命中测试以了解执行单击的区域类型:

    import win32gui,win32api
    previous_state = win32api.GetKeyState(0x02)
    while True:
        a = win32api.GetKeyState(0x02)
        if a != previous_state:
            previous_state = a
            if a < 0:
                Clickx,Clicky = win32gui.GetCursorPos()
                window = win32gui.GetForegroundWindow()
                win32gui.SetForegroundWindow(window)
                WM_NCHITTEST_result = win32gui.SendMessage(window,0x0084,"",Clickx)
                if WM_NCHITTEST_result == 8: # check if click is on the minimize btn 
                    # Do something here

官方的hittest是通过以下方式进行的:

                Clickx,Clicky = win32gui.GetCursorPos()
                WM_NCHITTEST_result = win32gui.SendMessage(window,Clickx)

并检查结果是否是最小化点击:

                if WM_NCHITTEST_result == 8: