通过判断鼠标的位置停止任务,这个方法的缺陷,如果里面有sleep任务,要等到sleep完,执行到判断语句,才可以停止任务。示例代码如下:
import pyautogui \nimport time\n\nwhile True:\n x, y = pyautogui.position()\n print(str(x)+\",\"+str(y))\n time.sleep(10)\n\n if (x < 50 ):\n print('exit')\n break
比较好的解决方案,通过线程,判断键盘热键输入
下面代码示例子线程执行完毕,调用_exit退出整个进程。主线程启动子线程后,等待快捷键输入,自定义快捷键输入后,可以结束子线程,并退出进程。
import pyautogui\nimport time\nimport threading\nimport keyboard\n\n\nimport os\ndef fast_click(n):\n i = 0\n\n pyautogui.moveTo(227, 804, 1)\n while (i < n):\n pyautogui.click()\n time.sleep(1)\n i = i + 1\n os._exit(0)\n\n\n# 创建线程并启动\nt = threading.Thread(target=fast_click, args=(50, ), daemon=True)\nt.start()\n# 等待按下右箭头键 结束程序\nkeyboard.wait('right')
可以定义那些快捷键,如下代码:
import pyautogui\n\n\nprint(pyautogui.KEYBOARD_KEYS)