首页 > 解决方案 > Python-检测点击最小化按钮

问题描述

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

标签: pythonsendmessagewin32gui

解决方案


我想到了。

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

    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, 0x0084,"",Clickx)

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

                if WM_NCHITTEST_result == 8:

推荐阅读