如何通过热键在控制台外部随时终止AutoClicker程序?
自动点击器随时终止的解决方案
你当前的代码里,只有当循环执行到if keyboard.is_pressed("b")这一行时,按下b键才能停止程序——但mouse.click()和sleep(1)会阻塞程序,导致大部分时间里按键检测根本没在运行,所以才会出现只能“特定时机”停止的问题。
要实现随时通过按键终止,可以用keyboard库的全局热键功能,它能在后台监听按键,不受主程序阻塞影响。修改后的代码如下:
from time import sleep import keyboard import mouse running = True def stop_clicker(): global running running = False # 注册全局热键:按下b键就触发停止函数 keyboard.add_hotkey('b', stop_clicker) while running: mouse.click() sleep(1) # 程序结束后清理注册的热键 keyboard.unhook_all()
关键改动说明
- 用
keyboard.add_hotkey注册全局监听,只要按下b键,不管主程序在执行点击还是休眠,都会立刻触发stop_clicker函数把running设为False - 主循环只需要判断
running状态,不需要再每次循环检测按键,彻底解决了阻塞导致的检测不及时问题
内容的提问来源于stack exchange,提问作者pyleky11
相关产品推荐
相关产品推荐

