import pyautogui import time import keyboard import random # =========================== # 🎮 配置区域(可调参数) # =========================== pyautogui.FAILSAFE = True # 启用安全机制:鼠标快速移到左上角可紧急停止! SCREEN_WIDTH, SCREEN_HEIGHT = pyautogui.size() SCREEN_HEIGHT_MIDDLE = SCREEN_HEIGHT // 2 # 鼠标保持在屏幕竖直中央(Y轴不变) MOVE_STEP = 50 * 2 # 每次移动的像素距离(越小越慢越自然,比如 1~3) MOVE_DURATION = 0.5 * 2 * 2 # 每次移动持续时间(单位:秒,越大越慢越平滑,推荐 0.2~1.0) MOVE_DELAY = 0 # 每次移动后的停顿时间(可调整,推荐 0.02~0.1) USE_RANDOM_OFFSET = False # 是否加入随机偏移(你不需要,保持 False 即可) CONTROL_KEY = 'F1' # 控制鼠标移动的快捷键(可修改为F1-F12或其他键) # =========================== # 🧠 状态控制 # =========================== is_moving_left = False # 控制是否正在向左移动鼠标 # =========================== # 🖱️ 鼠标向左移动函数 # =========================== def auto_move_left(): global is_moving_left print(f"🖱️ 【鼠标自动左移】已启动:鼠标将缓慢向左移动...") while is_moving_left: current_x, current_y = pyautogui.position() # 获取当前鼠标 x, y 坐标 target_x = max(current_x - MOVE_STEP, 0) # 往左移动,但不能小于 0(屏幕最左边) target_y = current_y # Y 坐标保持不变,保持在屏幕中间或当前位置 # 移动鼠标到目标位置(向左),使用平滑动画 pyautogui.moveTo(target_x, target_y, duration=MOVE_DURATION) # 可选的停顿,模拟自然观察 time.sleep(MOVE_DELAY) print(f"🛑 【鼠标自动左移】已停止。") # =========================== # ⌨️ 按键监听:启动 / 停止 左移控制 # =========================== def toggle_left_movement(): global is_moving_left if is_moving_left: is_moving_left = False print(f"⏹️ {CONTROL_KEY} 被按下:鼠标左移已停止。") else: is_moving_left = True print(f"▶️ {CONTROL_KEY} 被按下:鼠标开始缓慢向左移动!") # 在新线程中运行,避免阻塞主线程和键盘监听 import threading threading.Thread(target=auto_move_left, daemon=True).start() # 注册热键监听 keyboard.add_hotkey(CONTROL_KEY, toggle_left_movement) # =========================== # 🚀 启动脚本 & 保持运行 # =========================== print("🎮 脚本已启动!") print(f"🔘 按下 {CONTROL_KEY} 键:启动 / 停止 鼠标缓慢向左移动") print("💡 鼠标会从当前位置开始,向左缓缓移动,不会重置到屏幕边缘") print("⚠️ 安全提示:你仍然可以用鼠标快速移动到屏幕左上角来紧急停止(FAILSAFE 机制)") print("ℹ️ 当前设置:缓慢、平滑、自然向左移动,无随机抖动") try: keyboard.wait() # 保持程序运行,监听按键 except KeyboardInterrupt: print("\n🛑 脚本已通过 Ctrl+C 停止。") finally: is_moving_left = False # 确保退出时停止移动