1. 程式人生 > 程式設計 >python自動化UI工具傳送QQ訊息的例項

python自動化UI工具傳送QQ訊息的例項

概述

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

對於多平臺的UI自動複雜操作,還是去學sikulix吧,這不是啃一點win32 api獲取視窗控制代碼就能輕鬆解決的,畢竟sikulix是MIT大佬折騰出來的。而且,原理也更復雜(通過使用opencv對窗體控制元件進行識別,進而實現控制操作)。

對於簡單的操作(控制剪下板快取、自動化keyboard操作、desktop游標移動、滑鼠點選動作等)可以使用python的一些包進行簡單的模擬實現:pyautogui / pywin32 等。

pyautogui是美國一個知名python程式設計師也是優秀的python作者Al Sweigart維護的一個模組,個人是比較推崇的,因為相對來說,整個模組都是python寫的,可讀性比較好,對一般功能的封裝得很好。pywin32就有點不一樣了,這個完全是用python對win32 api介面進行python api的轉換,用起來比較複雜,對windows api及c sharp有一定了解,加上文件全但是基本就是原樣包windows api的文件抄了一下,所以看起來是相當痛苦的。(但是實際上pywin32跟pyautogui的思路都是使用windows api獲取窗體程式控制代碼進而實現自動化操控,從實現原理上看來,也註定這種方式是不可能完成過於複雜的UI自動化作業的。)

目標

使用pyautogui,實現自動化傳送qq訊息。

實現

安裝三方python包,pyautogui

pip install pyautogui

引入包,進行自動化指令碼編寫 —— 相當簡單易讀,參考api文件

①開啟對應的群聊天視窗,才能獲取到控制代碼列表,設定傳送使用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物件建立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內容
 {'': <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資料分析交流群': 
 <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自動化UI工具傳送QQ訊息的例項就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。