在本教程中,我们将了解Python 中的自动答题器。我们将首先了解它的含义以及如何在 Python 中实现它。那么,事不宜迟,让我们进入正题。
Auto Clicker是一种 Python 软件,允许用户以较短的时间间隔连续点击鼠标。它由用户定义的键控制,适用于所有环境——Windows、Mac 和 Linux。在 Python 中,我们将使用名为 PyAutoGUI 的包来执行此操作。这将使我们能够同时操作鼠标和监视键盘。
方法一:使用 PyAutoGui
PyAutoGUI使用 (x,y) 坐标,原点 (0,0) 位于屏幕的左上角。当我们向右移动时,x 坐标会增大,但 y 坐标会减小。
Play Video
PyAutoGUI 目前仅适用于主显示器。对于第二台显示器的屏幕来说,这是不可信的。PyAutoGUI 执行的所有键盘按下都会传输到具有当前焦点的窗口。
代码实现
import pyautogui
import time
def click():
time.sleep(0.1)
pyautogui.click()
for i in range(20):
click()
方法二:使用 Pynput
让我们尝试使用 Pynput 模块在 Python 中实现自动点击器。
导入所需模块
import time
import threading
from pynput.mouse import Button, Controller
from pynput.keyboard import Listener, KeyCode
程序中导入了多个模块,包括导入按钮和控制器以控制鼠标操作,还导入侦听器和键码以跟踪键盘事件以处理自动点击器操作的启动和停止。
声明重要变量
delay = 0.001
button = Button.left
start_stop_key = KeyCode(char='s')
exit_key = KeyCode(char='e')
下一步是声明一些重要的变量,包括:
设置为需要点击的鼠标按钮的按钮变量。
Begin_End 变量,设置为启动和停止自动点击器的键。
用于关闭自动点击器的Exit_Key 变量。
创建一个类来扩展线程
class ClickMouse(threading.Thread):
def __init__(self, delay, button):
super(ClickMouse, self).__init__()
self.delay = delay
self.button = button
self.running = False
self.program_run = True
def start_clicking(self):
self.running = True
def stop_clicking(self):
self.running = False
def exit(self):
self.stop_clicking()
self.program_run = False
def run(self):
while self.program_run:
while self.running:
mouse.click(self.button)
time.sleep(self.delay)
time.sleep(0.1)
由于我们构建的线程,我们将能够管理鼠标点击。有两个选项:延迟和按钮。另外还有两个指示器指示程序是否正在执行。
创建在外部处理线程的方法
start_clicking(): 启动线程
stop_clicking (): 停止线程
exit(): 退出程序并重置
创建一个将在线程启动时运行的方法
当线程启动时,将调用此方法。我们将遍历循环,直到run_prgm 的结果等于 True。循环中的循环迭代直到运行的值为True。一旦我们进入两个循环,我们就按下设置按钮。
为鼠标控制器创建实例
mouse = Controller()
thread = ClickMouse(delay, button)
thread.start()
创建一个方法来设置键盘监听器
def on_press(key):
if key == start_stop_key:
if thread.running:
thread.stop_clicking()
else:
thread.start_clicking()
elif key == exit_key:
thread.exit()
listener.stop()
with Listener(on_press=on_press) as listener:
listener.join()
如果您按下开始结束键,如果标志设置为真,它将停止点击。否则,它将开始。如果按下退出键,则调用线程的退出方法,并终止侦听器。
结论
这是在 Python 中开发自动答题器的两种截然不同的方法。它可以根据用户的需要进一步定制。
喜欢教程吗?无论如何,我建议您看看下面提到的教程: