最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python使用PyAutoGUI模擬鼠標(biāo)鍵盤操作實現(xiàn)消息發(fā)送

 更新時間:2026年04月21日 09:05:39   作者:yuanpan  
本文介紹了如何使用Python的PyAutoGUI庫模擬鼠標(biāo)和鍵盤操作,以微信為例,自動打開軟件、搜索好友、輸入消息和發(fā)送消息,通過本文,讀者可以了解PyAutoGUI的核心思路,需要的朋友可以參考下

前言

在日常辦公中,我們經(jīng)常會遇到一些重復(fù)性的電腦操作,例如打開某個軟件、點擊固定位置、輸入一段文字、按下快捷鍵等。如果這些操作規(guī)則比較固定,就可以考慮使用 Python 進(jìn)行自動化控制。

PyAutoGUI 是一個常用的 Python 自動化操作庫,它可以模擬鼠標(biāo)和鍵盤行為,例如移動鼠標(biāo)、點擊按鈕、輸入文本、按下快捷鍵、截圖以及定位屏幕元素等。它的特點是使用簡單、跨平臺能力較好,適合 Python 初學(xué)者學(xué)習(xí)桌面自動化的基本思路。

本文將以電腦版微信為例,介紹如何使用 PyAutoGUI 模擬鼠標(biāo)和鍵盤操作,實現(xiàn)自動打開微信、定位好友、輸入消息并發(fā)送。

需要注意的是,本文示例僅用于學(xué)習(xí)桌面自動化技術(shù)和處理個人重復(fù)操作。請不要將自動化腳本用于騷擾、群發(fā)垃圾消息或違反平臺規(guī)則的行為。

一、環(huán)境準(zhǔn)備

1. Python 環(huán)境

建議使用 Python 3.8 及以上版本??梢栽诿钚兄袌?zhí)行下面的命令查看 Python 版本:

python --version

如果可以正常輸出版本號,例如 Python 3.11.0,說明 Python 環(huán)境已經(jīng)安裝完成。

2. 安裝 PyAutoGUI

使用 pip 安裝 PyAutoGUI:

pip install pyautogui

如果安裝速度較慢,也可以使用國內(nèi)鏡像源:

pip install pyautogui -i https://pypi.tuna.tsinghua.edu.cn/simple

安裝完成后,可以在 Python 中測試導(dǎo)入:

import pyautogui
print("PyAutoGUI 安裝成功")

如果沒有報錯,說明環(huán)境準(zhǔn)備完成。

二、核心知識點

在編寫完整腳本之前,需要先了解 PyAutoGUI 的幾個基礎(chǔ)用法。

1. 獲取屏幕尺寸

import pyautogui

width, height = pyautogui.size()
print(width, height)

pyautogui.size() 會返回當(dāng)前屏幕的寬度和高度,單位是像素。

2. 獲取當(dāng)前鼠標(biāo)位置

import pyautogui

x, y = pyautogui.position()
print(x, y)

這個方法可以獲取鼠標(biāo)當(dāng)前所在位置的坐標(biāo)。后續(xù)自動點擊微信好友、輸入框等位置時,會用到這些坐標(biāo)。

3. 鼠標(biāo)移動

import pyautogui

pyautogui.moveTo(500, 300, duration=0.5)

moveTo() 用于把鼠標(biāo)移動到指定坐標(biāo)。duration 表示移動過程持續(xù)的時間,單位是秒。

4. 鼠標(biāo)點擊

import pyautogui

pyautogui.click(500, 300)

click() 用于點擊指定坐標(biāo)。如果不傳坐標(biāo),則默認(rèn)點擊當(dāng)前鼠標(biāo)所在位置。

5. 鍵盤輸入

import pyautogui

pyautogui.write("Hello", interval=0.05)

write() 可以模擬鍵盤輸入英文字符。interval 表示每個字符之間的輸入間隔。

不過,pyautogui.write() 對中文輸入支持并不穩(wěn)定。因此,在自動發(fā)送中文消息時,更推薦使用剪貼板方式:先把中文內(nèi)容復(fù)制到剪貼板,再模擬 Ctrl + V 粘貼。

6. 快捷鍵操作

import pyautogui

pyautogui.hotkey("ctrl", "v")
pyautogui.press("enter")

hotkey() 可以模擬組合鍵,press() 可以模擬單個按鍵。

7. 延遲等待

import time

time.sleep(1)

桌面自動化腳本經(jīng)常需要等待窗口打開、頁面加載、軟件響應(yīng),因此合理加入延遲非常重要。

三、實戰(zhàn)案例:自動控制電腦版微信發(fā)送消息

本案例的目標(biāo)是:

  1. 打開電腦版微信。
  2. 點擊微信搜索框。
  3. 輸入好友名稱。
  4. 點擊搜索結(jié)果中的好友。
  5. 在聊天輸入框中輸入消息。
  6. 自動發(fā)送消息。

由于不同電腦的屏幕分辨率、微信窗口大小、縮放比例可能不同,腳本中的坐標(biāo)需要根據(jù)自己的電腦進(jìn)行調(diào)整。

四、獲取坐標(biāo)的方法

在運(yùn)行自動化腳本前,建議先獲取幾個關(guān)鍵位置的坐標(biāo):

  • 微信搜索框坐標(biāo)
  • 搜索結(jié)果中的好友坐標(biāo)
  • 聊天輸入框坐標(biāo)

可以使用下面的小工具查看鼠標(biāo)實時坐標(biāo):

import pyautogui
import time

print("請將鼠標(biāo)移動到目標(biāo)位置,按 Ctrl + C 結(jié)束程序")

try:
    while True:
        x, y = pyautogui.position()
        print(f"當(dāng)前鼠標(biāo)坐標(biāo):x={x}, y={y}", end="\r")
        time.sleep(0.1)
except KeyboardInterrupt:
    print("\n坐標(biāo)獲取結(jié)束")

運(yùn)行程序后,把鼠標(biāo)移動到目標(biāo)位置,就可以看到實時坐標(biāo)。記錄這些坐標(biāo)后,填入后面的完整代碼即可。

五、完整可運(yùn)行代碼示例

下面的代碼使用 PyAutoGUI 自動打開電腦版微信,并向指定好友發(fā)送一條消息。

在運(yùn)行代碼之前,請先根據(jù)自己的電腦修改:

  • WECHAT_PATH
  • SEARCH_BOX_POS
  • FRIEND_RESULT_POS
  • INPUT_BOX_POS
  • FRIEND_NAME
  • MESSAGE
import os
import time
import pyautogui
import pyperclip


# =========================
# 1. 基礎(chǔ)配置
# =========================

# 電腦版微信的安裝路徑,需要根據(jù)自己的電腦實際情況修改
# 常見路徑示例:
# C:\Program Files\Tencent\WeChat\WeChat.exe
# C:\Program Files (x86)\Tencent\WeChat\WeChat.exe
WECHAT_PATH = r"C:\Program Files\Tencent\WeChat\WeChat.exe"

# 需要發(fā)送消息的好友名稱
FRIEND_NAME = "文件傳輸助手"

# 需要發(fā)送的消息內(nèi)容
MESSAGE = "你好,這是一條使用 Python 和 PyAutoGUI 自動發(fā)送的測試消息。"

# 微信搜索框坐標(biāo),需要根據(jù)自己的電腦修改
SEARCH_BOX_POS = (160, 40)

# 搜索結(jié)果中好友的位置坐標(biāo),需要根據(jù)自己的電腦修改
FRIEND_RESULT_POS = (170, 140)

# 聊天輸入框坐標(biāo),需要根據(jù)自己的電腦修改
INPUT_BOX_POS = (520, 720)

# 每次操作后的等待時間,防止軟件響應(yīng)較慢導(dǎo)致操作失敗
WAIT_TIME = 1


# =========================
# 2. 安全設(shè)置
# =========================

# PyAutoGUI 的安全保護(hù)機(jī)制:
# 如果鼠標(biāo)快速移動到屏幕左上角,程序會拋出異常并停止運(yùn)行
pyautogui.FAILSAFE = True

# 每個 PyAutoGUI 操作之間自動暫停 0.2 秒
pyautogui.PAUSE = 0.2


def open_wechat():
    """打開電腦版微信。"""

    # 判斷微信程序是否存在
    if not os.path.exists(WECHAT_PATH):
        raise FileNotFoundError(f"未找到微信程序,請檢查路徑是否正確:{WECHAT_PATH}")

    # 使用 os.startfile 打開 Windows 程序
    os.startfile(WECHAT_PATH)

    # 等待微信窗口啟動
    time.sleep(3)


def paste_text(text):
    """通過剪貼板粘貼文本,適合輸入中文內(nèi)容。"""

    # 將文本復(fù)制到系統(tǒng)剪貼板
    pyperclip.copy(text)

    # 模擬 Ctrl + V 粘貼
    pyautogui.hotkey("ctrl", "v")

    # 等待文本粘貼完成
    time.sleep(0.5)


def select_friend(friend_name):
    """通過搜索框定位并打開指定好友聊天窗口。"""

    # 點擊微信搜索框
    pyautogui.click(*SEARCH_BOX_POS)
    time.sleep(WAIT_TIME)

    # 先清空搜索框中可能存在的內(nèi)容
    pyautogui.hotkey("ctrl", "a")
    pyautogui.press("backspace")
    time.sleep(0.5)

    # 輸入好友名稱。中文內(nèi)容使用剪貼板粘貼更穩(wěn)定
    paste_text(friend_name)
    time.sleep(WAIT_TIME)

    # 點擊搜索結(jié)果中的好友
    pyautogui.click(*FRIEND_RESULT_POS)
    time.sleep(WAIT_TIME)


def send_message(message):
    """在聊天輸入框中輸入并發(fā)送消息。"""

    # 點擊聊天輸入框
    pyautogui.click(*INPUT_BOX_POS)
    time.sleep(0.5)

    # 輸入消息內(nèi)容
    paste_text(message)
    time.sleep(0.5)

    # 按下 Enter 發(fā)送消息
    pyautogui.press("enter")


def main():
    """主函數(shù):按順序執(zhí)行自動化流程。"""

    # 打開電腦版微信
    open_wechat()

    # 搜索并打開指定好友
    select_friend(FRIEND_NAME)

    # 輸入并發(fā)送消息
    send_message(MESSAGE)

    print("消息發(fā)送流程執(zhí)行完成")


if __name__ == "__main__":
    main()

六、代碼說明

1. 為什么使用 pyperclip

pyautogui.write() 更適合輸入英文和數(shù)字。如果直接輸入中文,可能會受到輸入法狀態(tài)、系統(tǒng)語言、焦點位置等因素影響。

因此,代碼中使用 pyperclip.copy() 先把中文復(fù)制到剪貼板,再通過 pyautogui.hotkey("ctrl", "v") 粘貼到微信輸入框。這樣輸入中文消息會更加穩(wěn)定。

2. 為什么要加入 time.sleep

桌面軟件不是瞬間響應(yīng)的。例如微信啟動、搜索好友、切換聊天窗口都需要一定時間。如果腳本執(zhí)行太快,可能會出現(xiàn)窗口還沒打開就開始點擊、搜索結(jié)果還沒加載就開始選擇等問題。

所以代碼中在關(guān)鍵步驟后加入了 time.sleep(),用于提高腳本穩(wěn)定性。

3. 為什么需要修改坐標(biāo)

PyAutoGUI 主要基于屏幕坐標(biāo)進(jìn)行操作。不同電腦的屏幕分辨率、縮放比例、微信窗口位置不同,同一個按鈕的坐標(biāo)也會不同。

因此,示例代碼中的坐標(biāo)只是參考值。實際運(yùn)行前,必須先使用坐標(biāo)獲取工具重新確認(rèn)坐標(biāo)。

七、注意事項

1. 坐標(biāo)獲取要準(zhǔn)確

運(yùn)行腳本前,建議先固定微信窗口位置和大小,然后使用坐標(biāo)獲取工具記錄搜索框、好友搜索結(jié)果、聊天輸入框的位置。

如果微信窗口移動了,原來的坐標(biāo)可能就不再準(zhǔn)確。

2. 開啟安全保護(hù)

PyAutoGUI 默認(rèn)支持 Fail-Safe 機(jī)制。當(dāng)程序失控時,可以把鼠標(biāo)快速移動到屏幕左上角,腳本會自動拋出異常并停止。

代碼中建議保留:

pyautogui.FAILSAFE = True

不要隨意關(guān)閉這個安全設(shè)置。

3. 避免誤操作

在執(zhí)行自動化腳本前,應(yīng)關(guān)閉不相關(guān)窗口,確保微信處于可操作狀態(tài)。否則腳本可能點擊到其他窗口,造成誤操作。

建議先把消息發(fā)送給“文件傳輸助手”進(jìn)行測試,確認(rèn)流程穩(wěn)定后,再用于其他個人場景。

4. 不要用于批量騷擾

自動化工具應(yīng)當(dāng)用于提高個人效率,而不是用于批量發(fā)送廣告、騷擾他人或規(guī)避平臺規(guī)則。使用自動化腳本時,應(yīng)遵守軟件平臺規(guī)則和相關(guān)法律法規(guī)。

5. 確認(rèn)微信路徑

如果運(yùn)行代碼時報錯“未找到微信程序”,說明 WECHAT_PATH 配置不正確??梢杂益I微信快捷方式,查看目標(biāo)路徑,然后復(fù)制到代碼中。

八、總結(jié)

本文介紹了如何使用 Python 的 PyAutoGUI 庫模擬鼠標(biāo)和鍵盤操作,并以電腦版微信為例,實現(xiàn)了自動打開軟件、搜索好友、輸入消息和發(fā)送消息的完整流程。

通過這個案例可以看到,PyAutoGUI 的核心思路并不復(fù)雜:先確定操作位置,再按照人工操作順序編寫腳本。對于一些規(guī)則固定、重復(fù)性較高的桌面操作,PyAutoGUI 是一個非常實用的自動化工具。

不過,基于坐標(biāo)的自動化方式對窗口位置和屏幕環(huán)境比較敏感。在實際使用中,應(yīng)當(dāng)注意坐標(biāo)準(zhǔn)確性、操作延遲和安全保護(hù),避免腳本誤操作。

以上就是Python使用PyAutoGUI模擬鼠標(biāo)鍵盤操作實現(xiàn)消息發(fā)送的詳細(xì)內(nèi)容,更多關(guān)于Python PyAutoGUI模擬鼠標(biāo)鍵盤操作的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python OOP類中的幾種函數(shù)或方法總結(jié)

    Python OOP類中的幾種函數(shù)或方法總結(jié)

    今天小編就為大家分享一篇關(guān)于Python OOP類中的幾種函數(shù)或方法總結(jié),小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-02-02
  • Python內(nèi)置函數(shù)issubclass()的具體使用

    Python內(nèi)置函數(shù)issubclass()的具體使用

    issubclass()是Python中一個非常有用的內(nèi)置函數(shù),它提供了一種簡單的方式來檢查類的繼承關(guān)系,本文主要介紹了Python內(nèi)置函數(shù)issubclass()的具體使用,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2007-03-03
  • Python實現(xiàn)結(jié)構(gòu)化日志系統(tǒng)的完整方案和最佳實踐

    Python實現(xiàn)結(jié)構(gòu)化日志系統(tǒng)的完整方案和最佳實踐

    在現(xiàn)代軟件系統(tǒng)中,日志不僅是調(diào)試和問題排查的工具,更是系統(tǒng)可觀測性的核心組成部分,本文將深入探討結(jié)構(gòu)化日志系統(tǒng)的設(shè)計原理、實現(xiàn)方法和最佳實踐,提供完整的Python實現(xiàn)方案,希望對大家有所幫助
    2025-12-12
  • Python實現(xiàn)單例模式的五種寫法總結(jié)

    Python實現(xiàn)單例模式的五種寫法總結(jié)

    單例模式(Singleton Pattern) 是一種常用的軟件設(shè)計模式,該模式的主要目的是確保某一個類只有一個實例存在。本文為大家整理了五種Python實現(xiàn)單例模式的寫法,需要的可以參考一下
    2022-08-08
  • Python PIL讀取的圖像發(fā)生自動旋轉(zhuǎn)的實現(xiàn)方法

    Python PIL讀取的圖像發(fā)生自動旋轉(zhuǎn)的實現(xiàn)方法

    這篇文章主要介紹了Python PIL讀取的圖像發(fā)生自動旋轉(zhuǎn)的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Python編程之微信推送模板消息功能示例

    Python編程之微信推送模板消息功能示例

    這篇文章主要介紹了Python編程之微信推送模板消息功能,結(jié)合實例形式分析了Python微信推送消息接口的調(diào)用相關(guān)操作技巧,需要的朋友可以參考下
    2017-08-08
  • Python中計算相似度的方法詳解

    Python中計算相似度的方法詳解

    計算相似度是許多機(jī)器學(xué)習(xí)和數(shù)據(jù)分析任務(wù)中的重要步驟,尤其是在推薦系統(tǒng)、文本分析和圖像處理等領(lǐng)域,下面我們就來看看具體的實現(xiàn)方法吧
    2025-02-02
  • python類中super() 的使用解析

    python類中super() 的使用解析

    super() 函數(shù)是用于調(diào)用父類(超類)的一個方法。這篇文章主要介紹了python類中super() 的使用,需要的朋友可以參考下
    2019-12-12
  • ubuntu 18.04 安裝opencv3.4.5的教程(圖解)

    ubuntu 18.04 安裝opencv3.4.5的教程(圖解)

    這篇文章主要介紹了ubuntu 18.04 安裝opencv3.4.5的教程,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-11-11
  • 基于Python進(jìn)行Word文檔模板自動化處理操作完整指南

    基于Python進(jìn)行Word文檔模板自動化處理操作完整指南

    在日常辦公和文檔處理工作中,我們經(jīng)常需要根據(jù)模板生成大量相似結(jié)構(gòu)的Word文檔,本文將深入介紹如何實現(xiàn)Word文檔模板的自動化處理,從占位符提取到智能填充的完整流程,希望對大家有所幫助
    2025-10-10

最新評論

泰安市| 罗甸县| 德惠市| 大石桥市| 富阳市| 林周县| 潞城市| 霸州市| 山丹县| 郴州市| 虎林市| 黄陵县| 广汉市| 榆中县| 安国市| 阿克陶县| 和龙市| 韶山市| 呼图壁县| 河北省| 常德市| 潜山县| 沾益县| 益阳市| 霍邱县| 常德市| 博客| 弥渡县| 万荣县| 徐闻县| 谢通门县| 泸西县| 宣威市| 蓝山县| 平舆县| 湟中县| 彰化县| 石嘴山市| 雷山县| 黑水县| 高雄市|