亞洲資本網 > 資訊 > 要聞 > 正文
用Python制作一個自動點擊器,三種模塊都可以
2023-08-27 04:57:26來源: 博客園

顧名思義,Python中的自動點擊器是一個簡單的Python應用程序,可以按照用戶的要求重復點擊鼠標。不同的參數,如速度、頻率和位置,可以根據用戶的要求進行改變。


(資料圖片)

Python有不同的模塊可用于控制鍵盤、鼠標等設備。因此,我們可以使用這些模塊在Python中輕松創(chuàng)建一個自動點擊器。

本教程將展示在Python中創(chuàng)建一個自動點擊器的不同方法。

1.使用pyautogui 模塊

pyautogui 模塊可以創(chuàng)建控制設備的鼠標和鍵盤的腳本。

我們可以使用pyautogui.click() 函數來點擊鼠標。我們可以使用pyautogui.moveTo() 函數事先將鼠標移動到需要的位置,并指定光標的坐標。

為了用這些函數創(chuàng)建一個自動點擊器,我們將移動鼠標并運行一個for 循環(huán)來執(zhí)行每個迭代的pyautogui.click() 函數。我們還將在每次點擊前稍作延遲,使之可見。

我們將使用time 模塊中的sleep() 函數進行延遲。

我們在下面的代碼中實現自動點擊器的邏輯。

import pyautoguiimport timepyautogui.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中創(chuàng)建一個自動點擊器。

請看下面的代碼。

import win32api, win32conimport timewin32api.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腳本中實現鼠標和鍵盤動作的自動化。這個方法與前兩個不同,因為我們將創(chuàng)建一個具有必要功能的類來創(chuàng)建一個自動點擊器。

我們將創(chuàng)建一個類,當一個特定的鍵被按下時,它將充當一個自動點擊器。另一個鍵將被分配來停止點擊。

我們將需要導入pynput.mouse 和pynput.keyboard 模塊。

創(chuàng)建的類將擴展到threading.Thread 類,這樣我們就可以用不同的功能來控制線程。

在該類的__init__ 方法中,我們將像之前那樣指定每次點擊之間的輕微延遲,并提到我們將使用Button.Left 對象點擊鼠標的左鍵。

線程將一直運行,直到停止點擊的鍵被按下。我們將使用threading.Thread 類的start() 方法來開始點擊。

在running() 方法中,我們也將使用Controller 類對象。

為了啟動和停止線程,我們將創(chuàng)建一個函數。Listener() 函數將執(zhí)行定義的函數,同時使用on_press 參數按下按鍵。

這個邏輯在下面的代碼中實現。

import timeimport threadingfrom pynput.mouse import Button, Controllerfrom pynput.keyboard import Listener, KeyCodestart_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小白學習交流群:725638078def 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 循環(huán)執(zhí)行了一個重復多次的函數來模仿鼠標的點擊。

最后一種方法是在Python中創(chuàng)建一個適當的自動點擊器腳本,它可以根據鍵盤上的按鍵開始和停止點擊。

關鍵詞:

專題新聞
  • 奧瑞金(002701)6月30日股東戶數4.95萬戶,較上期增加4.84%
  • 推進多式聯運高質量發(fā)展 服務支撐實現“物暢其流”——透視多式聯運“一單制”“一箱制”發(fā)展
  • 模擬人生醫(yī)院在哪里(模擬人生醫(yī)院在哪個地圖)
  • 成都車展:寶馬XM50e/XM Label Red上市
  • 中信重工(601608.SH):二季度計提各類資產減值準備5602.90萬元
  • “二鍋頭”業(yè)績爆雷,高毅資產虧大了!能效達傳統(tǒng)芯片14倍,IBM開發(fā)出新AI芯片(附概念股)
最近更新

京ICP備2021034106號-51

Copyright © 2011-2020  亞洲資本網   All Rights Reserved. 聯系網站:55 16 53 8 @qq.com