如何使用Python實現(xiàn)自動化點擊鼠標和操作鍵盤?

python中的庫可以模擬鼠標點擊和鍵盤輸入的動作。所以我們需要告訴程序在哪里點擊,單機還是雙擊,點右鍵還是左鍵,在哪里輸入,輸入什么……

基本操作流程如下:

1.搭建python運行環(huán)境Anaconda,安裝pyautogui庫

2.安裝visual code 用來編寫代碼

1 搭建Python運行環(huán)境

1.png
2.png

根據(jù)自己的系統(tǒng)和多少位操作系統(tǒng),選擇安裝包。

安裝好之后,再安裝pyautogui,這個庫可用來模擬鼠標和鍵盤操作。

鏈接:https://pan.baidu.com/s/19CCBSdt7qMv2R0HpFDg6qg

提取碼:6666

打開Anaconda Powershell Prompt輸入以下命令:

  • cd setup.py所在路徑

  • python setup.py install

3.png

2 安裝編寫python代碼的編輯器vscode

點擊下載vscode……

5.png

常用快捷鍵:

  • 打開一個新的 Tab頁 Ctrl+N

  • 打開一個新的 窗口 Ctrl+Shift+N

  • 關閉當前 (光標所在) Tab頁 Ctrl+W

  • 關閉當前窗口 Ctrl+Shift+W

  • 在一個編輯器中切處一個新的編輯器(最多三個) Ctrl+\

  • 代碼行縮進 Ctrl+[Ctrl+]

  • 折疊打開代碼塊 Ctrl+Shift+[Ctrl+Shift+]

  • Ctrl+C Ctrl+V如果不選中,默認復制或剪切一整行

  • 運行 Ctrl + F5

  • 調試運行 F5

3記錄個人操作流程

以“打開excel,輸入文字,保存,然后關閉”這套流程為例。

整套操作流程總結為以下幾點:

  • 完整記錄上述操作的每一步,每一步鼠標所在位置和操作類型(單擊雙擊或者輸入文字等)

  • 鼠標移動到你要點擊的位置

  • 記錄位置坐標和操作情況到position.txt

txt中記錄內容如下:

4.png

關閉文檔 4 1880 19 1 Click為例解釋如下:

  • 關閉文檔為操作名

  • 4位操作序號

  • 1880 19 為鼠標位置

  • 1設置的延時,時間為s

  • Click鼠標操作類型

實時顯示鼠標代碼如下:

def GetPositon():
    
    while True:

        currentMouseX, currentMouseY = pag.position()

        print(currentMouseX, currentMouseY)
        
        os.system('cls')  # 執(zhí)行系統(tǒng)清屏指令
    
if __name__ == "__main__":
    
    GetPositon()

這一步操作略顯笨拙,不夠自動化,當然這一步可以做得更好,更加便捷。

4編碼實現(xiàn)自動化操作

下面這段代碼,逐行執(zhí)行position.txt中的指令。代碼邏輯如下:

  • 將position.txt中的指令讀入posList列表中

  • 遍歷列表posList,逐步操作

import pyautogui as pag
import time

class ExcuteFlow():
    
    def __init__(self):
        
        posList = []
        # 逐行讀position.txt,并分解每行數(shù)據(jù),將數(shù)據(jù)存入字典posDic中
        # 同時將字典壓入列表posList
        with open("position.txt",encoding='utf-8', mode = "r") as fea:
            for feature in fea.readlines():
                posDic = {}
                feature = feature.strip('\n')
                words = feature.split(" ")
                posDic['operate'] = words[0]
                posDic['x'] = int(words[2])
                posDic['y'] = int(words[3])
                posDic['delay'] = int(words[4])
                posDic['name'] = words[5]
                posList.append(posDic)
        self.posList = posList
        self.Excute()
    
    def Excute(self):
        #遍歷列表posList
        for pos in self.posList:
            print(f"excute {pos['operate']}")
            if pos['name'] == "Click":
                pag.click(pos["x"], pos["y"])
            elif pos['name'] == "DoubleClick":
                pag.doubleClick(pos["x"], pos["y"])
            else:
                pag.click(pos["x"], pos["y"])
                pag.typewrite(pos["name"])
            time.sleep(pos['delay'])
     
if __name__ == "__main__":
    
    excute = ExcuteFlow()

使用python幫你自動點點點,并不復雜。

看懂這一篇教程之后,你當然可以設置更復雜的操作。

核心不在于代碼,而在于如何細致分解你的操作流程,就是制作好你的position.txt文件。

同時延時還需要根據(jù)你的實際情況設置好。

關鍵字:python模擬鼠標和鍵盤

?

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。