翼度科技»论坛 编程开发 python 查看内容

用Python制作一个自动点击器,三种模块都可以

8

主题

8

帖子

24

积分

新手上路

Rank: 1

积分
24
顾名思义,Python中的自动点击器是一个简单的Python应用程序,可以按照用户的要求重复点击鼠标。不同的参数,如速度、频率和位置,可以根据用户的要求进行改变。
Python有不同的模块可用于控制键盘、鼠标等设备。因此,我们可以使用这些模块在Python中轻松创建一个自动点击器。
本教程将展示在Python中创建一个自动点击器的不同方法。
1.使用pyautogui 模块

pyautogui 模块可以创建控制设备的鼠标和键盘的脚本。
我们可以使用pyautogui.click() 函数来点击鼠标。我们可以使用pyautogui.moveTo() 函数事先将鼠标移动到需要的位置,并指定光标的坐标。
为了用这些函数创建一个自动点击器,我们将移动鼠标并运行一个for 循环来执行每个迭代的pyautogui.click() 函数。我们还将在每次点击前稍作延迟,使之可见。
我们将使用time 模块中的sleep() 函数进行延迟。
我们在下面的代码中实现自动点击器的逻辑。
  1. import pyautogui
  2. import time
  3. pyautogui.moveTo(600, 800)
  4. for i in range(20):
  5.     time.sleep(0.1)
  6.     pyautogui.click()
复制代码
在上面的例子中,我们将光标移动到坐标(600,800) ,并使用click() 函数点击鼠标20次。
使用win32api

win32api 是用来控制和自动化Windows COM对象的。我们可以使用win32con 模块中的这些对象并模仿鼠标点击。
为此,我们使用win32api.mouse_event 函数两次,一次用于win32con.MOUSEEVENTF_LEFTDOWN ,另一次用于win32con.MOUSEEVENTF_LEFTDOWN 来模仿鼠标点击。
我们将用win23api.SetCursorPos() 函数将光标的位置设置为所需的坐标。然后,我们将使用与前面方法类似的方法,在Python中创建一个自动点击器。
请看下面的代码。
  1. import win32api, win32con
  2. import time
  3. win32api.SetCursorPos((600,800))
  4. for i in range(20):
  5.     win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN,600,800,0,0)
  6.     win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP,600,800,0,0)
  7.     time.sleep(0.1)
复制代码
3.使用pynput 模块

我们也有pynput ,用于在Python脚本中实现鼠标和键盘动作的自动化。这个方法与前两个不同,因为我们将创建一个具有必要功能的类来创建一个自动点击器。
我们将创建一个类,当一个特定的键被按下时,它将充当一个自动点击器。另一个键将被分配来停止点击。
我们将需要导入pynput.mouse 和pynput.keyboard 模块。
创建的类将扩展到threading.Thread 类,这样我们就可以用不同的功能来控制线程。
在该类的__init__ 方法中,我们将像之前那样指定每次点击之间的轻微延迟,并提到我们将使用Button.Left 对象点击鼠标的左键。
线程将一直运行,直到停止点击的键被按下。我们将使用threading.Thread 类的start() 方法来开始点击。
在running() 方法中,我们也将使用Controller 类对象。
为了启动和停止线程,我们将创建一个函数。Listener() 函数将执行定义的函数,同时使用on_press 参数按下按键。
这个逻辑在下面的代码中实现。
  1. import time
  2. import threading
  3. from pynput.mouse import Button, Controller
  4. from pynput.keyboard import Listener, KeyCode
  5. start_end = KeyCode(char='a')
  6. exit_key = KeyCode(char='z')
  7. class auto_clicker_class(threading.Thread):
  8.     def __init__(self):
  9.         super(auto_clicker_class, self).__init__()
  10.         self.delay = 0.1
  11.         self.button = Button.left
  12.         self.running = False
  13.         self.program_run = True
  14.     def begin_clicking(self):
  15.         self.running = True
  16.     def clicking_stop(self):
  17.         self.running = False
  18.     def exit(self):
  19.         self.clicking_stop()
  20.         self.program_run = False
  21.     def run(self):
  22.         while self.program_run:
  23.             while self.running:
  24.                 mouse_ob.click(self.button)
  25.                 time.sleep(self.delay)
  26.             time.sleep(0.1)
  27. mouse_ob = Controller()
  28. t = auto_clicker_class()
  29. t.start()
  30. #Python小白学习交流群:725638078
  31. def fun(k):
  32.     if k == start_end:
  33.         if t.running:
  34.             t.clicking_stop()
  35.         else:
  36.             t.begin_clicking()
  37.     elif k == exit_key:
  38.         t.exit()
  39.         listener.stop()
  40. with Listener(on_press=fun) as listener:
  41.     listener.join()
复制代码
总结

我们在本教程中讨论了自动点击器。前两种方法相对简单,因为我们使用for 循环执行了一个重复多次的函数来模仿鼠标的点击。
最后一种方法是在Python中创建一个适当的自动点击器脚本,它可以根据键盘上的按键开始和停止点击。

来源:https://www.cnblogs.com/djdjdj123/p/17659078.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具