WeChat mass msg
原始版本
微信群發訊息,Windows系統客戶端(PC端
gui
使用了pyside6
WeChat
的模組是uiautomation
主頁面
關於頁面
喚醒WeChat
由快捷鍵更改為Windows
系統層面喚醒微信窗口
def __wake_up_window ():
"""唤醒微信窗口"""
hwnd = win32gui . FindWindow ( 'WeChatMainWndForPC' , '微信' )
# 展示窗口
win32gui . SetForegroundWindow ( hwnd )
win32gui . ShowWindow ( hwnd , win32con . SW_SHOWDEFAULT )
完善在沒有100%匹配好友暱稱時候,取得目前面板的暱稱做匹配
# 获取到真实的昵称(获取当前面板的备注名称), 有时候输入不全, 可以搜索到,但输入内容时候会报错
def __get_current_panel_nickname ( self ) -> str :
"""获取当前面板的好友昵称"""
for idx in range ( 1 , 10 ):
current_panel_nickname = self . wx_window . TextControl ( foundIndex = idx ). Name
if current_panel_nickname :
return current_panel_nickname
發送訊息時,如果目前面板的好友暱稱與需發送的好友暱稱一直,則無需再次搜尋跳到好友面板
if self . __get_current_panel_nickname () != name :
self . __goto_chat_box ( name = name )
工具啟動時, WeChat
和工具都會置頂,工具關閉時WeChat
最小化。
keyboard
鍵盤監聽模組,按下快速鍵Ctrl+Alt+Q
進行隱藏或展示工具 import keyboard
keyboard . add_hotkey ( 'Ctrl+Alt+Q' , window . restore_from_tray )
Esc
和Ctrl+Alt+Q
都可以進行最小化到工作列。 def listen_keyboard ( self ):
# 键盘监听
shortcut = QShortcut ( QKeySequence ( "Esc" ), self )
# 当按下 Esc 键时隐藏窗口
shortcut . activated . connect ( self . restore_from_tray )
psutil
import psutil
def get_specific_process ( proc_name : str = 'WeChat.exe' ) -> bool :
"""获取指定进程是否存在"""
return any ( proc . name () == proc_name for proc in psutil . process_iter ( attrs = [ 'name' ]))
pip install -r requirements.txt
pyinstaller -F -w --icon=resources/icon/icon.ico main.py
不要做壞事,不要做壞事,不要做壞事! ! ! (不過看起來也做不了壞事
GUI
,提上議程-2024-03-18 ThreadPool
+ QRunnable
,工具不會卡頓GUI
的程式碼,目前的MVC架构
不夠合理直接運行main.py
操作微信的代碼
在傳送訊息send_msg函數中,無論是傳送單一或多條,都需要傳入可迭代物件(eg:list(), tuple()...
可以同時發送文字和文件,但不可同時都不發送!至少發送其中一種。
# 实例化WxOperation类
wx = WxOperation ()
# 发送文本
wx . send_msg ( '好友名称' , msgs = [ 'hello' , 'world' ])
# 发送文件
wx . send_msg ( '好友名称' , file_paths = [ 'README.md' , 'wx_operation.py' ])
# 发送文本和文件
wx . send_msg ( '好友名称' , msgs = [ 'hello' , 'world' ], file_paths = [ 'README.md' , 'wx_operation.py' ])
# 批量发送
wx . send_msg ( * [ '好友1' , '好友2' ...], msgs = [ 'hello' , 'world' ], file_paths = [ 'README.md' , 'wx_operation.py' ])
# 获取微信好友
wx . get_friend_list () # 获取全部好友
wx . get_friend_list ( tag = '你的标签' ) # 获取指定标签好友
其他的自己去翻翻程式碼吧,除去註解都不到100行程式碼。
幫助我們處理群發訊息的繁瑣,解放雙手(免責聲明,本程式碼僅用於學習,下載後請勿用於商業用途)