我想用鼠标按钮在某个点上单击,但仅在活动窗口中单击。假设我的活动窗口的尺寸为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等)之类的东西不太熟悉
有三个坐标:屏幕坐标,活动窗口坐标和活动窗口的客户区坐标。
如果要单击与活动窗口具有相对位置((720-520)
,(1280-1080)
)的点,则首先使用GetWindowRect
检索指定窗口的边界矩形的尺寸。 (尺寸以屏幕坐标给出。)然后加上上述偏移量(GetWindowRect
,200
)。
如果要单击与活动窗口的客户区域具有相对位置(200
,200
)的点,则首先使用200
检索窗口的客户区域的坐标。然后加上上述偏移量(GetClientRect
,GetClientRect
)。由于200
使用屏幕坐标,因此您需要使用200
将活动窗口的工作区的坐标转换为屏幕坐标。
最后,SetCursorPos
功能已被取代。请改用SetCursorPos
。