首页 > 编程语言 >用Python制作一个自动点击器,三种模块都可以

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

时间:2023-08-26 16:56:36浏览次数:38  
标签:pyautogui 鼠标 Python self 点击 模块 import

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

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

本教程将展示在Python中创建一个自动点击器的不同方法。

1.使用pyautogui 模块

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

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)

3.使用pynput 模块

我们也有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()
#Python小白学习交流群:725638078
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中创建一个适当的自动点击器脚本,它可以根据键盘上的按键开始和停止点击。

标签:pyautogui,鼠标,Python,self,点击,模块,import
From: https://www.cnblogs.com/djdjdj123/p/17659078.html

相关文章

  • 两种不同的方法来检查Python中的变量是否是字符串
    在Python中,每个变量都有一个数据类型。数据类型表示一个变量内部存储的是哪种数据。数据类型是编程语言最重要的特征,它区分了我们可以存储的不同类型的数据,如字符串、int和float。在处理许多编程问题时,可能会遇到这样的情况:我们需要找到某个变量的数据类型来对其执行一些任务。......
  • 用Python制作截图小工具
    Python编程语言允许我们执行各种任务,所有这些都是在简单模块和短小精悍的代码的帮助下完成的。在Python的帮助下进行屏幕截图就是这样一项任务。Python为我们提供了许多模块,使我们能够执行不同的任务。有多种方法可以使用Python及其库进行屏幕截图。用Pyautogui模块进行截图第......
  • Python中会被视为False的值有以下几种
    Python中会被视为False的值有以下几种:布尔值:False数值:0或0.0字符串:空字符串,如’'或""容器:空的容器,如[],(),{},set()None:None其他的值都会被视为True。您可以用bool()函数来测试一个值是否为True或False。例如:bool(0)#Falsebool(1)#Truebool('')#Falsebool('Hello'......
  • Python中如何判断列表是否为空
    Python中如何判断列表是否为空介绍列表是Python中最常用的数据结构之一,可以存储多个元素,比如数字,字符串,对象等列表的使用场景很多,比如排序,查找,统计,过滤等在使用列表的过程中,有时候需要判断列表是否为空,也就是列表中是否有元素在Python中,有两种常用的方法来判断列表是否为空,......
  • 如何使用MicroPython将Raspberry Pi Pico W与伺服电机连接?
    PicoW是一款经济实惠且紧凑的微控制器板,基于RP2040芯片,非常适合嵌入式系统和物联网项目。MicroPython是Python的轻量级实现,为微控制器编程提供了用户友好的环境。通过遵循概述的步骤,读者将学习如何将伺服电机连接到PicoW、编写MicroPython代码来控制其运动,并获得将精确......
  • Python中小括号( )、中括号[ ]和大括号{}分别代表什么?
     Python中,小括号 () 代表元组数据类型,中括号 [] 代表列表数据类型,大括号 {} 代表字典数据类型。 元组是一种不可变序列,创建方法很简单,大多时候都是用小括号括起来的。例如:tup=(1,2,3)列表是一种可变序列,其创建方法即简单又特别。例如:list=['a','b',......
  • centos7.6 anaconda安装python
    在CentOS7.6上安装Anaconda并配置Python3.8.17环境可以按照以下步骤进行操作:下载Anaconda:首先,前往Anaconda官网下载适用于Linux的Anaconda安装包。选择适合你操作系统位数的版本(通常是64位)。下载链接:https://www.anaconda.com/products/distribution安装......
  • Python绘图:小提琴图的理解与绘制
    目录一、小提琴图简介1.1小提琴图的概念1.2小提琴图与箱线图、核密度函数以及高斯混合体之间的关系与区别二、箱线图的绘制2.1基于matplotlib库的箱线图绘制(1)函数主要参数及功能(2)函数返回值(3)示例2.2基于seaborn库的箱线图绘制(1)函数主要参数功能及其返回值(2)示例附录Python绘图......
  • 无涯教程-Python - XML处理
    XML是一种可移植的开放源语言,它使程序员能够开发可由其他应用程序读取的应用程序,而无需考虑操作系统和/或开发语言。可扩展标签语言(XML)是一种类似于HTML或SGML的标签语言。万维网联盟建议这样做,并且可以作为开放标准使用。XML对跟踪少量到中等数量的数据而无需基于SQL的主干......
  • 【python】使用ddddocr模块报错处理:AttributeError: module 'PIL.Image' has no attri
    安装pipinstallddddocr安装特别慢,几kb每秒,而且容易超时报错使用清华源下载:pipinstall-ihttps://pypi.tuna.tsinghua.edu.cn/simpleddddocr使用img_url="https://user.wangxiao.cn/apis//common/getImageCaptcha"img_resp=session.post(img_url)......