Python仅在活动窗口中单击坐标

问题描述 投票:-2回答:1

我想用鼠标按钮在某个点上单击,但仅在活动窗口中单击。假设我的活动窗口的尺寸为720x1280,并且我想单击此窗口中的(520, 1080)点。我该怎么做?我只设法单击了这一点,但这是屏幕上不在活动窗口中的那个点。我的代码是:

def click(x, y):
    win32api.SetCursorPos((x, y))
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, x, y, 0, 0)
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, x, y, 0, 0)

我一无所知,我对诸如win32库(con,api等)之类的东西不太熟悉

python python-3.x winapi click cursor-position
1个回答
0
投票

有三个坐标:屏幕坐标,活动窗口坐标和活动窗口的客户区坐标。

如果要单击与活动窗口具有相对位置((720-520)(1280-1080))的点,则首先使用GetWindowRect检索指定窗口的边界矩形的尺寸。 (尺寸以屏幕坐标给出。)然后加上上述偏移量(GetWindowRect200)。

如果要单击与活动窗口的客户区域具有相对位置(200200)的点,则首先使用200检索窗口的客户区域的坐标。然后加上上述偏移量(GetClientRectGetClientRect)。由于200使用屏幕坐标,因此您需要使用200将活动窗口的工作区的坐标转换为屏幕坐标。

最后,SetCursorPos功能已被取代。请改用SetCursorPos

© www.soinside.com 2019 - 2024. All rights reserved.