溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

python如何實現(xiàn)自動化UI工具發(fā)送QQ消息

發(fā)布時間:2021-07-23 14:38:31 來源:億速云 閱讀:152 作者:小新 欄目:開發(fā)技術(shù)

這篇文章主要介紹python如何實現(xiàn)自動化UI工具發(fā)送QQ消息,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

概述

個人遇到過小的需求,windows自動水群發(fā)送垃圾消息,使用一些特別簡單易上手的小工具,快速實現(xiàn)功能需求(而不是使用一些重量級的還需要額外花時間去熟悉功能語法的大工具,如UI自動化工具sikulix)。在一番摸索下,得出一番結(jié)論:

對于多平臺的UI自動復(fù)雜操作,還是去學(xué)sikulix吧,這不是啃一點win32 api獲取窗口句柄就能輕松解決的,畢竟sikulix是MIT大佬折騰出來的。而且,原理也更復(fù)雜(通過使用opencv對窗體控件進行識別,進而實現(xiàn)控制操作)。

對于簡單的操作(控制剪切板緩存、自動化keyboard操作、desktop光標移動、鼠標點擊動作等)可以使用python的一些包進行簡單的模擬實現(xiàn):pyautogui / pywin32 等。

pyautogui是美國一個知名python程序員也是優(yōu)秀的python作者Al Sweigart維護的一個模塊,個人是比較推崇的,因為相對來說,整個模塊都是python寫的,可讀性比較好,對一般功能的封裝得很好。pywin32就有點不一樣了,這個完全是用python對win32 api接口進行python api的轉(zhuǎn)換,用起來比較復(fù)雜,對windows api及c sharp有一定了解,加上文檔全但是基本就是原樣包windows api的文檔抄了一下,所以看起來是相當痛苦的。(但是實際上pywin32跟pyautogui的思路都是使用windows api獲取窗體程序句柄進而實現(xiàn)自動化操控,從實現(xiàn)原理上看來,也注定這種方式是不可能完成過于復(fù)雜的UI自動化作業(yè)的。)

目標

使用pyautogui,實現(xiàn)自動化發(fā)送qq消息。

實現(xiàn)

安裝三方python包,pyautogui

pip install pyautogui

引入包,進行自動化腳本編寫 —— 相當簡單易讀,參考api文檔

①打開對應(yīng)的群聊天窗口,才能獲取到句柄列表,設(shè)置發(fā)送使用ctrl+enter鍵(方便自動化控制)

python如何實現(xiàn)自動化UI工具發(fā)送QQ消息

②編寫代碼

import pyautogui as gui
import time

print(gui.getWindows()) # getWindows獲取所有活動窗體程序句柄對象的字典,key為窗體程序title,value為hwnd對象
gui.Window(gui.getWindows().get('Python數(shù)據(jù)分析交流群')).set_foreground() 
# Window使用hwnd對象創(chuàng)建window對象,對窗體程序進行控制
# 這一部分在提供的官方api文檔里并沒有提到,這是作者故意沒有提及的窗體程序句柄處理,才對win api封裝了幾個功能
for i in range(10):
 gui.typewrite(time.asctime()+' : '+str(i)) # typewrite可以參考文檔,實際是模擬鍵盤輸入,所以當這里的內(nèi)容換成中文時,是無效的
 gui.hotkey('ctrl','enter') # hotkey模擬組合鍵
 time.sleep(10)
 
 >>>> print內(nèi)容
 {'': <ctypes.wintypes.LP_c_long object at 0x0000027E50544D48>, 'SelfProject [C:\\Users\\Stan Pao\\PycharmProjects\\SelfProject] -
 ...\\test2.py [SelfProject] - PyCharm': <ctypes.wintypes.LP_c_long object at 0x0000027E50544F48>, 'Python數(shù)據(jù)分析交流群': 
 <ctypes.wintypes.LP_c_long object at 0x0000027E505AB048>, '南京捷安特精英俱樂部': <ctypes.wintypes.LP_c_long object at 
 0x0000027E505AB0C8>, 'pyautogui - OneNote': <ctypes.wintypes.LP_c_long object at 0x0000027E505AB148>, '寫文章-CSDN博客 -
 Google Chrome': <ctypes.wintypes.LP_c_long object at 0x0000027E505AB1C8>, 'Program Manager': <ctypes.wintypes.LP_c_long object at 
 0x0000027E505AB248>}

效果如下:還是很簡單好用的~

python如何實現(xiàn)自動化UI工具發(fā)送QQ消息

以上是“python如何實現(xiàn)自動化UI工具發(fā)送QQ消息”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI