Python中如何控制真实鼠标位置

利用库能实现鼠标鼠标光标移动 但是一移动真实鼠标实际上还在原地没有移动 如何控制真实鼠标位置 小白一枚,虚心求教各位大牛😄


Python中如何控制真实鼠标位置
16 回复

哈?真实鼠标是指现实中的鼠标吗?难不成鼠标还能动…?

ps. 建议说清楚 鼠标 还是 指针


在Python里控制真实鼠标位置,最直接的方法是使用pyautogui库。它跨平台,用起来简单。先装库:pip install pyautogui

核心就一个函数:pyautogui.moveTo(x, y, duration=秒数)。把鼠标瞬间移到屏幕坐标(x, y)。加duration参数会让移动有个平滑的动画效果。坐标原点(0,0)在屏幕左上角。

import pyautogui
import time

# 获取当前屏幕尺寸
screen_width, screen_height = pyautogui.size()
print(f"屏幕分辨率: {screen_width}x{screen_height}")

# 瞬间移动到屏幕中心
center_x, center_y = screen_width // 2, screen_height // 2
pyautogui.moveTo(center_x, center_y)

time.sleep(1)  # 等1秒看看

# 用1秒时间平滑移动到(100, 100)
pyautogui.moveTo(100, 100, duration=1.0)

# 相对移动:基于当前位置向右100像素,向下50像素
pyautogui.moveRel(100, 50, duration=0.5)

注意安全:pyautogui移动鼠标是“真动”,代码一跑起来你就控制不了鼠标了。有个防崩开关:把鼠标快速甩到屏幕左上角(0,0)位置,程序会触发pyautogui.FailSafeException异常自动退出。写循环或自动化脚本时最好留这个后门。

还有个备选方案是pynput库,它能更底层地监听和控制键鼠事件,但单纯移动鼠标的话pyautogui更省事。

总结:用pyautogui.moveTo()就行。

机械臂

你要给鼠标装上导轨和步进电机,然后树莓派是可以用 python 编程的,用它来控制步进电机,你就可以控制真实鼠标的位置了。

额,是我表述不清,是指的桌面上动的那个鼠标光标,虽然用 py 库实现了移动到某个坐标,但是一移动真实的鼠标,光标却还在原地,希望知道怎么实现和手上鼠标同步的移动


我表述能力差。。。

你是想由计算机运行的程序反过来控制鼠标动吗?还是想了解鼠标工作中数据传输的部分?

想由计算机运行的程序反过来控制鼠标动,但是移动了发现和手上鼠标是不同步的,比如我用程序吧光标移动到左上角,但移动手上鼠标时候光标缺还在之前本来就停留的那里

那是你移动后没点击,类似获取焦点

对 python 不熟,不知道楼主有没有写过外挂之类的,我觉得区别应该在 click(x,y) 和 move(x,y) 这两者。
实在不行,直接调用 Win32 接口也可以啊, SetCursorPos , mouse_event 之类的


发现是因为虚拟机的缘故导致的这样。。。

是因为虚拟机光标共享的缘故=,=||| 抱歉

我猜 LZ 的需求是这样的:

写一个 python 程序,让鼠标既可以人肉控制,又可以程序控制。

应该这么做
系统层面劫持鼠标移动事件,此时系统对物理层鼠标移动无感知;而且这个程序可以向系统转发鼠标移动事件。

我为什么脑补 python 进来……

污污污 666

看了一眼感觉是虚拟机内外鼠标同步的问题。

回到顶部