基于Python实现自动点击器

 更新时间:2023年10月27日 07:40:06   作者:迹忆客  
顾名思义,Python 中的自动点击器是一个简单的 Python 应用程序,它根据用户要求重复单击鼠标, 不同的参数可以根据用户进行更改,下面我们就来看看具体实现方法吧

顾名思义,Python 中的自动点击器是一个简单的 Python 应用程序,它根据用户要求重复单击鼠标。 不同的参数,如速度、频率和位置,可以根据用户进行更改。

Python 有不同的模块可用于控制键盘、鼠标等设备。因此,我们可以使用这些模块轻松地在 Python 中创建自动点击器。

本篇文章将介绍在 Python 中创建自动答题器的不同方法。

使用 pyautogui 模块在 Python 中创建自动点击器

pyautogui 模块可以创建控制设备的鼠标和键盘的脚本。

我们可以使用 pyautogui.click() 函数来单击鼠标。 我们可以使用 pyautogui.moveTo() 函数预先将鼠标移动到所需位置,并指定光标的坐标。

要使用这些函数创建自动点击器,我们将移动鼠标并运行 for 循环来执行每次迭代的 pyautogui.click() 函数。 我们还会在每次点击之前稍微延迟以使其可见。

我们将使用 time 模块中的 sleep() 函数来进行延迟。

我们在下面的代码中实现自动点击器的逻辑。

import pyautogui
import time
pyautogui.moveTo(600, 800)
for i in range(20):
    time.sleep(0.1)
    pyautogui.click()

在上面的示例中,我们将光标移动到坐标(600,800)并使用 click() 函数单击鼠标 20 次。

使用 win32api 在 Python 中创建自动点击器

win32api 用于控制和自动化 Windows COM 对象。 我们可以使用 win32con 模块中的这些对象并模拟鼠标单击。

为此,我们使用 win32api.mouse_event 函数两次,一次用于 win32con.MOUSEEVENTF_LEFTDOWN,另一次用于 win32con.MOUSEEVENTF_LEFTDOWN 来模拟鼠标单击。

我们将使用 win23api.SetCursorPos() 函数将光标的位置设置为所需的坐标。 然后,我们将使用与之前方法类似的方法在 Python 中创建自动点击器。

请参阅下面的代码。

import win32api, win32con
import time
win32api.SetCursorPos((600,800))
for i in range(20):
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN,600,800,0,0)
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP,600,800,0,0)
    time.sleep(0.1)

使用 pynput 模块在 Python 中创建自动点击器

我们还有 pynput 用于在 Python 脚本中自动执行鼠标和键盘操作。 此方法与前两种方法不同,因为我们将创建一个具有创建自动点击器所需功能的类。

我们将创建一个类,当按下特定键时,它将充当自动点击器。 将分配另一个键来停止点击。

我们需要导入 pynput.mouse 和 pynput.keyboard 模块。

创建的类将扩展为threading.Thread类,以便我们可以控制具有不同功能的线程。

在类的 __init__ 方法中,我们将像之前一样指定每次单击之间的轻微延迟,并提到我们将使用 Button.Left 对象单击鼠标左键。

线程将继续运行,直到按下停止点击的键为止。 我们将使用 threading.Thread 类的 start() 方法来开始单击。

在 running() 方法中,我们还将使用 Controller 类对象。

为了启动和停止线程,我们将创建一个函数。 Listener() 函数将在使用 on_press 参数按下按键时执行定义的函数。

这个逻辑在下面的代码中实现。

import time
import threading
from pynput.mouse import Button, Controller
from pynput.keyboard import Listener, KeyCode

start_end = KeyCode(char='a')
exit_key = KeyCode(char='z')

class auto_clicker_class(threading.Thread):
    def __init__(self):
        super(auto_clicker_class, self).__init__()
        self.delay = 0.1
        self.button = Button.left
        self.running = False
        self.program_run = True
    def begin_clicking(self):
        self.running = True
    def clicking_stop(self):
        self.running = False
    def exit(self):
        self.clicking_stop()
        self.program_run = False
    def run(self):
        while self.program_run:
            while self.running:
                mouse_ob.click(self.button)
                time.sleep(self.delay)
            time.sleep(0.1)

mouse_ob = Controller()
t = auto_clicker_class()
t.start()

def fun(k):
    if k == start_end:
        if t.running:
            t.clicking_stop()
        else:
            t.begin_clicking()
    elif k == exit_key:
        t.exit()
        listener.stop()

with Listener(on_press=fun) as listener:
    listener.join()

总结

我们在本篇文章中讨论了自动点击器。 前两种方法相对简单,因为我们使用 for 循环重复执行一个函数多次来模拟鼠标单击。

最后一种方法在 Python 中创建一个适当的自动点击器脚本,可以根据键盘上按下的键开始和停止点击。

到此这篇关于基于Python实现自动点击器的文章就介绍到这了,更多相关Python点击器内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python Matplotlib条形图之垂直条形图和水平条形图详解

    Python Matplotlib条形图之垂直条形图和水平条形图详解

    这篇文章主要为大家详细介绍了Python Matplotlib条形图之垂直条形图和水平条形图,使用数据库,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • python3 os进行嵌套操作的实例讲解

    python3 os进行嵌套操作的实例讲解

    在本篇文章里小编给大家整理了关于python3 os进行嵌套操作的实例内容,有兴趣的朋友们可以学习下。
    2020-11-11
  • python3 queue多线程通信

    python3 queue多线程通信

    这篇文章主要介绍了python3 queue多线程通信,​​Queue​​ 对象已经包含了必要的锁,所以你可以通过它在多个线程间多安全地共享数据,更多相关内容需要的朋友可以参考一下下文文章内容
    2022-07-07
  • python 如何对Series中的每一个数据做运算

    python 如何对Series中的每一个数据做运算

    这篇文章主要介绍了python 实现对Series中的每一个数据做运算操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05
  • Python内置debug库pdb用法示例详解

    Python内置debug库pdb用法示例详解

    这篇文章主要介绍了Python内置debug库pdb用法的相关资料,Python的内置调试器pdb可以有效帮助开发者掌握程序执行流程和变量状态,通过插入pdb.set_trace()设置断点,或直接从命令行启动pdb,可以进入交互式调试模式,需要的朋友可以参考下
    2024-11-11
  • ansible-playbook实现自动部署KVM及安装python3的详细教程

    ansible-playbook实现自动部署KVM及安装python3的详细教程

    这篇文章主要介绍了ansible-playbook实现自动部署KVM及安装python3的详细教程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-05-05
  • python+Django实现防止SQL注入的办法

    python+Django实现防止SQL注入的办法

    这篇文章主要介绍了python+Django实现防止SQL注入的办法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • 浅析python多线程中的锁

    浅析python多线程中的锁

    这篇文章主要介绍了浅析python多线程中的锁,锁由Python的threading模块提供,并且它最多被一个线程所持有,当一个线程试图获取一个已经锁在资源上的锁时,该线程通常会暂停运行,直到这个锁被释放,需要的朋友可以参考下
    2023-07-07
  • python操作excel之openpyxl模块读写xlsx格式使用方法详解

    python操作excel之openpyxl模块读写xlsx格式使用方法详解

    这篇文章主要介绍了python操作excel之openpyxl模块读写xlsx格式使用方法详解,需要的朋友可以参考下
    2022-12-12
  • Python实现学校管理系统

    Python实现学校管理系统

    这篇文章主要为大家详细介绍了Python实现学校管理系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01

最新评论