Messagerie de groupe WeChat, client système Windows (client PC
gui
utilise pyside6
WeChat
est uiautomation
Page principale
À propos de la page
La touche de raccourci pour réveiller WeChat
est modifiée au niveau du système Windows
pour réveiller la fenêtre WeChat.
def __wake_up_window ():
"""唤醒微信窗口"""
hwnd = win32gui . FindWindow ( 'WeChatMainWndForPC' , '微信' )
# 展示窗口
win32gui . SetForegroundWindow ( hwnd )
win32gui . ShowWindow ( hwnd , win32con . SW_SHOWDEFAULT )
Amélioration de la possibilité d'obtenir le surnom du panneau actuel pour une correspondance lorsqu'il n'y a pas de correspondance à 100 % des surnoms des amis
# 获取到真实的昵称(获取当前面板的备注名称), 有时候输入不全, 可以搜索到,但输入内容时候会报错
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
Lors de l'envoi d'un message, si le surnom de l'ami dans le panneau actuel est le même que le surnom de l'ami à envoyer, il n'est pas nécessaire de rechercher à nouveau pour accéder au panneau des amis.
if self . __get_current_panel_nickname () != name :
self . __goto_chat_box ( name = name )
Lorsque l'outil est démarré, WeChat
et l'outil seront tous deux au premier plan, et WeChat
sera minimisé à la fermeture de l'outil.
keyboard
et appuyez sur la touche de raccourci Ctrl+Alt+Q
pour masquer ou afficher l'outil import keyboard
keyboard . add_hotkey ( 'Ctrl+Alt+Q' , window . restore_from_tray )
Esc
et Ctrl+Alt+Q
pour réduire la barre des tâches. 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
Ne faites pas de mauvaises choses, ne faites pas de mauvaises choses, ne faites pas de mauvaises choses ! ! ! (Mais il semble qu’il ne puisse rien faire de mal.
GUI
, mis à l'ordre du jour-2024-03-18 ThreadPool
+ QRunnable
multithread, l'outil ne se figera pas GUI
. L' MVC架构
actuelle n'est pas assez raisonnable. Exécutez main.py directement
Code pour faire fonctionner WeChat
Dans la fonction send_msg , que vous envoyiez un seul message ou plusieurs messages, vous devez transmettre un objet itérable (par exemple : list(), tuple()...
Vous pouvez envoyer du texte et des fichiers en même temps, mais pas les deux en même temps ! Envoyez-en au moins un.
# 实例化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 = '你的标签' ) # 获取指定标签好友
Pour le reste, allez parcourir le code vous-même. Il fait moins de 100 lignes de code hors commentaires.
Aidez-nous à gérer l'ennui de la messagerie de groupe et libérez nos mains ( Avertissement , ce code est uniquement destiné à l'apprentissage, veuillez ne pas l'utiliser à des fins commerciales après le téléchargement)