如何让Keyboard模块检测鼠标左右键点击以替换自动点击器快捷键触发逻辑
实现方案
要实现鼠标按键状态检测,你可以使用pynput库,它支持全局鼠标事件监听,可与现有pyautogui功能兼容。
第一步:安装依赖
执行以下命令安装pynput:
pip install pynput
第二步:代码实现
提供两种常用逻辑的实现,你可以根据需求选择:
方案1:按住鼠标按键自动连点(和你原有逻辑效果一致)
import pyautogui from pynput import mouse import threading pyautogui.PAUSE = 0.1 # 按键按压状态标志 left_pressing = False right_pressing = False # 连点执行线程 def click_task(): while True: if left_pressing: pyautogui.click() if right_pressing: pyautogui.rightClick() # 鼠标按下回调 def on_press(key): global left_pressing, right_pressing if key == mouse.Button.left: left_pressing = True elif key == mouse.Button.right: right_pressing = True # 鼠标松开回调 def on_release(key): global left_pressing, right_pressing if key == mouse.Button.left: left_pressing = False elif key == mouse.Button.right: right_pressing = False # 可选:取消下方注释,点击鼠标侧键X1即可退出程序 # if key == mouse.Button.x1: # return False if __name__ == "__main__": # 启动连点线程 threading.Thread(target=click_task, daemon=True).start() # 启动鼠标事件监听器 with mouse.Listener(on_press=on_press, on_release=on_release) as listener: listener.join()
功能说明:
- 按住鼠标左键自动连续触发左键点击,松开即停止,对应原
g键功能 - 按住鼠标右键自动连续触发右键点击,松开即停止,对应原
h键功能 - 调整
pyautogui.PAUSE的数值即可修改连点间隔时间 - 若运行时检测不到鼠标事件,尝试用管理员权限启动脚本即可
方案2:按一次鼠标按键触发一次点击
如果你不需要连点效果,仅需要点击一次触发一次对应操作,可以使用简化版本:
import pyautogui from pynput import mouse pyautogui.PAUSE = 0.1 def on_press(key): if key == mouse.Button.left: pyautogui.click() elif key == mouse.Button.right: pyautogui.rightClick() # 可选:取消下方注释,点击鼠标侧键X2即可退出程序 # if key == mouse.Button.x2: # return False if __name__ == "__main__": with mouse.Listener(on_press=on_press) as listener: listener.join()
内容的提问来源于stack exchange,提问作者DA Skull
相关产品推荐
相关产品推荐

