基于Python實現(xiàn)自動點擊器
顧名思義,Python 中的自動點擊器是一個簡單的 Python 應(yīng)用程序,它根據(jù)用戶要求重復(fù)單擊鼠標(biāo)。 不同的參數(shù),如速度、頻率和位置,可以根據(jù)用戶進行更改。
Python 有不同的模塊可用于控制鍵盤、鼠標(biāo)等設(shè)備。因此,我們可以使用這些模塊輕松地在 Python 中創(chuàng)建自動點擊器。
本篇文章將介紹在 Python 中創(chuàng)建自動答題器的不同方法。
使用 pyautogui 模塊在 Python 中創(chuàng)建自動點擊器
pyautogui 模塊可以創(chuàng)建控制設(shè)備的鼠標(biāo)和鍵盤的腳本。
我們可以使用 pyautogui.click() 函數(shù)來單擊鼠標(biāo)。 我們可以使用 pyautogui.moveTo() 函數(shù)預(yù)先將鼠標(biāo)移動到所需位置,并指定光標(biāo)的坐標(biāo)。
要使用這些函數(shù)創(chuàng)建自動點擊器,我們將移動鼠標(biāo)并運行 for 循環(huán)來執(zhí)行每次迭代的 pyautogui.click() 函數(shù)。 我們還會在每次點擊之前稍微延遲以使其可見。
我們將使用 time 模塊中的 sleep() 函數(shù)來進行延遲。
我們在下面的代碼中實現(xiàn)自動點擊器的邏輯。
import pyautogui import time pyautogui.moveTo(600, 800) for i in range(20): time.sleep(0.1) pyautogui.click()
在上面的示例中,我們將光標(biāo)移動到坐標(biāo)(600,800)并使用 click() 函數(shù)單擊鼠標(biāo) 20 次。
使用 win32api 在 Python 中創(chuàng)建自動點擊器
win32api 用于控制和自動化 Windows COM 對象。 我們可以使用 win32con 模塊中的這些對象并模擬鼠標(biāo)單擊。
為此,我們使用 win32api.mouse_event 函數(shù)兩次,一次用于 win32con.MOUSEEVENTF_LEFTDOWN,另一次用于 win32con.MOUSEEVENTF_LEFTDOWN 來模擬鼠標(biāo)單擊。
我們將使用 win23api.SetCursorPos() 函數(shù)將光標(biāo)的位置設(shè)置為所需的坐標(biāo)。 然后,我們將使用與之前方法類似的方法在 Python 中創(chuàng)建自動點擊器。
請參閱下面的代碼。
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 中創(chuàng)建自動點擊器
我們還有 pynput 用于在 Python 腳本中自動執(zhí)行鼠標(biāo)和鍵盤操作。 此方法與前兩種方法不同,因為我們將創(chuàng)建一個具有創(chuàng)建自動點擊器所需功能的類。
我們將創(chuàng)建一個類,當(dāng)按下特定鍵時,它將充當(dāng)自動點擊器。 將分配另一個鍵來停止點擊。
我們需要導(dǎo)入 pynput.mouse 和 pynput.keyboard 模塊。
創(chuàng)建的類將擴展為threading.Thread類,以便我們可以控制具有不同功能的線程。
在類的 __init__ 方法中,我們將像之前一樣指定每次單擊之間的輕微延遲,并提到我們將使用 Button.Left 對象單擊鼠標(biāo)左鍵。
線程將繼續(xù)運行,直到按下停止點擊的鍵為止。 我們將使用 threading.Thread 類的 start() 方法來開始單擊。
在 running() 方法中,我們還將使用 Controller 類對象。
為了啟動和停止線程,我們將創(chuàng)建一個函數(shù)。 Listener() 函數(shù)將在使用 on_press 參數(shù)按下按鍵時執(zhí)行定義的函數(shù)。
這個邏輯在下面的代碼中實現(xiàn)。
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()
總結(jié)
我們在本篇文章中討論了自動點擊器。 前兩種方法相對簡單,因為我們使用 for 循環(huán)重復(fù)執(zhí)行一個函數(shù)多次來模擬鼠標(biāo)單擊。
最后一種方法在 Python 中創(chuàng)建一個適當(dāng)?shù)淖詣狱c擊器腳本,可以根據(jù)鍵盤上按下的鍵開始和停止點擊。
到此這篇關(guān)于基于Python實現(xiàn)自動點擊器的文章就介紹到這了,更多相關(guān)Python點擊器內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python Matplotlib條形圖之垂直條形圖和水平條形圖詳解
這篇文章主要為大家詳細(xì)介紹了Python Matplotlib條形圖之垂直條形圖和水平條形圖,使用數(shù)據(jù)庫,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-03-03python 如何對Series中的每一個數(shù)據(jù)做運算
這篇文章主要介紹了python 實現(xiàn)對Series中的每一個數(shù)據(jù)做運算操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-05-05ansible-playbook實現(xiàn)自動部署KVM及安裝python3的詳細(xì)教程
這篇文章主要介紹了ansible-playbook實現(xiàn)自動部署KVM及安裝python3的詳細(xì)教程,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-05-05python+Django實現(xiàn)防止SQL注入的辦法
這篇文章主要介紹了python+Django實現(xiàn)防止SQL注入的辦法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10python操作excel之openpyxl模塊讀寫xlsx格式使用方法詳解
這篇文章主要介紹了python操作excel之openpyxl模塊讀寫xlsx格式使用方法詳解,需要的朋友可以參考下2022-12-12Python實現(xiàn)學(xué)校管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了Python實現(xiàn)學(xué)校管理系統(tǒng),具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-01-01