Python如何无需鼠标左键点击通过内置变量获取鼠标X/Y坐标
Python 无点击获取鼠标X/Y坐标相关说明
- Python 标准库不存在可直接读取实时鼠标X/Y坐标的内置变量,没有能直接拿到坐标值的全局内置变量名,所有获取坐标的操作都需要通过对应接口/方法调用实现,且完全可以做到不触发鼠标左键点击。
- 常用无点击获取坐标实现方案:
- 跨平台通用方案(支持Windows/macOS/Linux)
安装第三方库pyautogui后,直接调用方法即可读取全局屏幕鼠标坐标,全程不需要任何鼠标操作:
该方法返回的坐标以屏幕左上角为原点,X轴向右数值递增,Y轴向下数值递增。import pyautogui mouse_x, mouse_y = pyautogui.position() print(f"X:{mouse_x}, Y:{mouse_y}")
2. Windows平台原生无依赖方案
直接用Python内置的ctypes标准库调用系统接口,不需要安装任何第三方库,也不需要点击鼠标:import ctypes from ctypes import wintypes class CursorPoint(ctypes.Structure): _fields_ = [("x", wintypes.LONG), ("y", wintypes.LONG)] point = CursorPoint() ctypes.windll.user32.GetCursorPos(ctypes.byref(point)) mouse_x, mouse_y = point.x, point.y- GUI框架内场景
如果是在Tkinter、PyQt/PySide等GUI程序内获取坐标,框架自带对应方法可直接读取鼠标位置,不需要绑定左键点击事件。比如Tkinter中可直接通过winfo_pointerxy()方法获取鼠标全局坐标。
- 跨平台通用方案(支持Windows/macOS/Linux)
注意:不要把GUI框架中鼠标事件触发时才会生成的事件属性,误认为是Python内置的全局坐标变量——这类属性仅在事件回调逻辑内有效,无法在全局任意位置直接读取。
内容的提问来源于stack exchange,提问作者Python User
相关产品推荐
相关产品推荐

