Mensagens de grupo WeChat, cliente de sistema Windows (cliente de PC
gui
usa pyside6
WeChat
é uiautomation
Página principal
Sobre a página
A tecla de atalho para ativar WeChat
é alterada para Windows
para ativar a janela do WeChat.
def __wake_up_window ():
"""唤醒微信窗口"""
hwnd = win32gui . FindWindow ( 'WeChatMainWndForPC' , '微信' )
# 展示窗口
win32gui . SetForegroundWindow ( hwnd )
win32gui . ShowWindow ( hwnd , win32con . SW_SHOWDEFAULT )
Melhorada a capacidade de obter o apelido do painel atual para correspondência quando não há 100% de correspondência de apelidos de amigos
# 获取到真实的昵称(获取当前面板的备注名称), 有时候输入不全, 可以搜索到,但输入内容时候会报错
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
Ao enviar uma mensagem, se o apelido do amigo no painel atual for igual ao apelido do amigo a ser enviado, não há necessidade de pesquisar novamente para pular para o painel de amigos.
if self . __get_current_panel_nickname () != name :
self . __goto_chat_box ( name = name )
Quando a ferramenta for iniciada, tanto WeChat
quanto a ferramenta estarão no topo, e WeChat
será minimizado quando a ferramenta for fechada.
keyboard
e pressione a tecla de atalho Ctrl+Alt+Q
para ocultar ou exibir a ferramenta import keyboard
keyboard . add_hotkey ( 'Ctrl+Alt+Q' , window . restore_from_tray )
Esc
e Ctrl+Alt+Q
para minimizar a barra de tarefas. 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
Não faça coisas ruins, não faça coisas ruins, não faça coisas ruins! ! ! (Mas parece que ele não pode fazer nada de ruim.
GUI
, coloque na agenda-2024-03-18 ThreadPool
+ QRunnable
multithread, a ferramenta não irá congelar GUI
A MVC架构
atual não é razoável o suficiente. Execute main.py diretamente
Código para operar o WeChat
Na função send_msg , quer você esteja enviando uma única mensagem ou múltiplas mensagens, você precisa passar um objeto iterável (por exemplo: list(), tuple()...
Você pode enviar texto e arquivos ao mesmo tempo, mas não os dois ao mesmo tempo! Envie pelo menos um destes.
# 实例化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 = '你的标签' ) # 获取指定标签好友
Quanto ao resto, examine você mesmo o código. Tem menos de 100 linhas de código, excluindo comentários.
Ajude-nos a lidar com o tédio das mensagens em grupo e libere nossas mãos ( Isenção de responsabilidade , este código é apenas para aprendizado, não o use para fins comerciais após o download)