概述
個人遇到過小的需求,windows自動水群發(fā)送垃圾消息,使用一些特別簡單易上手的小工具,快速實現功能需求(而不是使用一些重量級的還需要額外花時間去熟悉功能語法的大工具,如UI自動化工具sikulix)。在一番摸索下,得出一番結論:
對于多平臺的UI自動復雜操作,還是去學sikulix吧,這不是啃一點win32 api獲取窗口句柄就能輕松解決的,畢竟sikulix是MIT大佬折騰出來的。而且,原理也更復雜(通過使用opencv對窗體控件進行識別,進而實現控制操作)。
對于簡單的操作(控制剪切板緩存、自動化keyboard操作、desktop光標移動、鼠標點擊動作等)可以使用python的一些包進行簡單的模擬實現:pyautogui / pywin32 等。
pyautogui是美國一個知名python程序員也是優(yōu)秀的python作者Al Sweigart維護的一個模塊,個人是比較推崇的,因為相對來說,整個模塊都是python寫的,可讀性比較好,對一般功能的封裝得很好。pywin32就有點不一樣了,這個完全是用python對win32 api接口進行python api的轉換,用起來比較復雜,對windows api及c sharp有一定了解,加上文檔全但是基本就是原樣包windows api的文檔抄了一下,所以看起來是相當痛苦的。(但是實際上pywin32跟pyautogui的思路都是使用windows api獲取窗體程序句柄進而實現自動化操控,從實現原理上看來,也注定這種方式是不可能完成過于復雜的UI自動化作業(yè)的。)
目標
使用pyautogui,實現自動化發(fā)送qq消息。
實現
安裝三方python包,pyautogui
pip install pyautogui
引入包,進行自動化腳本編寫 ―― 相當簡單易讀,參考api文檔
①打開對應的群聊天窗口,才能獲取到句柄列表,設置發(fā)送使用ctrl+enter鍵(方便自動化控制)
②編寫代碼
import pyautogui as gui import time print(gui.getWindows()) # getWindows獲取所有活動窗體程序句柄對象的字典,key為窗體程序title,value為hwnd對象 gui.Window(gui.getWindows().get('Python數據分析交流群')).set_foreground() # Window使用hwnd對象創(chuàng)建window對象,對窗體程序進行控制 # 這一部分在提供的官方api文檔里并沒有提到,這是作者故意沒有提及的窗體程序句柄處理,才對win api封裝了幾個功能 for i in range(10): gui.typewrite(time.asctime()+' : '+str(i)) # typewrite可以參考文檔,實際是模擬鍵盤輸入,所以當這里的內容換成中文時,是無效的 gui.hotkey('ctrl','enter') # hotkey模擬組合鍵 time.sleep(10) >>>> print內容 {'':, 'SelfProject [C:\\Users\\Stan Pao\\PycharmProjects\\SelfProject] - ...\\test2.py [SelfProject] - PyCharm': , 'Python數據分析交流群': , '南京捷安特精英俱樂部': , 'pyautogui - OneNote': , '寫文章-CSDN博客 - Google Chrome': , 'Program Manager': }
效果如下:還是很簡單好用的~
以上這篇python自動化UI工具發(fā)送QQ消息的實例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
