Mensajería grupal WeChat, cliente del sistema Windows (cliente de PC
gui
utiliza pyside6
WeChat
es uiautomation
pagina principal
Acerca de la página
La tecla de acceso directo para activar WeChat
se cambia al nivel del sistema Windows
para activar la ventana de WeChat.
def __wake_up_window ():
"""唤醒微信窗口"""
hwnd = win32gui . FindWindow ( 'WeChatMainWndForPC' , '微信' )
# 展示窗口
win32gui . SetForegroundWindow ( hwnd )
win32gui . ShowWindow ( hwnd , win32con . SW_SHOWDEFAULT )
Se mejoró la capacidad de obtener el apodo del panel actual para buscar coincidencias cuando no hay una coincidencia del 100 % de los apodos de los 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
Al enviar un mensaje, si el apodo del amigo en el panel actual es el mismo que el apodo del amigo que se va a enviar, no es necesario volver a buscar para saltar al panel de amigos.
if self . __get_current_panel_nickname () != name :
self . __goto_chat_box ( name = name )
Cuando se inicia la herramienta, tanto WeChat
como la herramienta estarán en la parte superior, y WeChat
se minimizará cuando se cierre la herramienta.
keyboard
y presione la tecla de método abreviado Ctrl+Alt+Q
para ocultar o mostrar la herramienta import keyboard
keyboard . add_hotkey ( 'Ctrl+Alt+Q' , window . restore_from_tray )
Esc
y Ctrl+Alt+Q
para minimizar en la barra de tareas. 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
¡No hagas cosas malas, no hagas cosas malas, no hagas cosas malas! ! ! (Pero parece que no puede hacer nada malo.
GUI
, puesta en la agenda-2024-03-18 ThreadPool
+ QRunnable
multiproceso, la herramienta no se congelará GUI
. La MVC架构
actual no es lo suficientemente razonable. Ejecute main.py directamente
Código para operar WeChat
En la función send_msg , ya sea que envíe un solo mensaje o varios mensajes, debe pasar un objeto iterable (por ejemplo: lista(), tupla()...
Puedes enviar texto y archivos al mismo tiempo, ¡pero no ambos al mismo tiempo! Envía al menos uno de estos.
# 实例化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 = '你的标签' ) # 获取指定标签好友
Por lo demás, revise el código usted mismo. Tiene menos de 100 líneas de código sin incluir los comentarios.
Ayúdanos a lidiar con el tedio de los mensajes grupales y libera nuestras manos ( Descargo de responsabilidad , este código es solo para aprendizaje, no lo utilices con fines comerciales después de descargarlo)