مراسلة مجموعة 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
، تم وضعها على جدول الأعمال-2024-03-18 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 سطر من الكود باستثناء التعليقات.
ساعدنا في التعامل مع ملل الرسائل الجماعية وحرر أيدينا ( إخلاء المسؤولية ، هذا الرمز مخصص للتعلم فقط، يرجى عدم استخدامه لأغراض تجارية بعد التنزيل)