Групповой обмен сообщениями WeChat, системный клиент Windows (клиент для ПК)
gui
использует pyside6
WeChat
— uiautomation
Главная страница
О странице
Сочетание клавиш для пробуждения WeChat
изменено на системный уровень Windows
, чтобы активировать окно WeChat.
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
, поставлен на повестку дня-18 марта 2024 г. ThreadPool
+ QRunnable
, инструмент не зависнет GUI
. Текущая MVC架构
недостаточно разумна. Запустите main.py напрямую
Код для работы WeChat
В функции send_msg , отправляете ли вы одно сообщение или несколько сообщений, вам необходимо передать итерируемый объект (например: 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 строк кода без учета комментариев.
Помогите нам справиться с утомительным общением в группах и освободите нам руки ( Отказ от ответственности , этот код предназначен только для обучения, пожалуйста, не используйте его в коммерческих целях после загрузки)