WeChat-Gruppennachrichten, Windows-System-Client (PC-Client).
gui
verwendet pyside6
WeChat
ist uiautomation
Hauptseite
Über die Seite
Die Tastenkombination zum Aufwecken WeChat
wurde auf Windows
-Systemebene geändert, um das WeChat-Fenster aufzuwecken.
def __wake_up_window ():
"""唤醒微信窗口"""
hwnd = win32gui . FindWindow ( 'WeChatMainWndForPC' , '微信' )
# 展示窗口
win32gui . SetForegroundWindow ( hwnd )
win32gui . ShowWindow ( hwnd , win32con . SW_SHOWDEFAULT )
Die Möglichkeit, den Spitznamen des aktuellen Panels für den Abgleich zu erhalten, wurde verbessert, wenn keine 100-prozentige Übereinstimmung der Spitznamen von Freunden besteht
# 获取到真实的昵称(获取当前面板的备注名称), 有时候输入不全, 可以搜索到,但输入内容时候会报错
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
Wenn beim Senden einer Nachricht der Spitzname des Freundes im aktuellen Bereich mit dem Spitznamen des zu sendenden Freundes übereinstimmt, ist keine erneute Suche erforderlich, um zum Freundesbereich zu springen.
if self . __get_current_panel_nickname () != name :
self . __goto_chat_box ( name = name )
Wenn das Tool gestartet wird, werden sowohl WeChat
als auch das Tool im Vordergrund angezeigt und WeChat
wird minimiert, wenn das Tool geschlossen wird.
keyboard
und drücken Sie die Tastenkombination Ctrl+Alt+Q
um das Tool auszublenden oder anzuzeigen import keyboard
keyboard . add_hotkey ( 'Ctrl+Alt+Q' , window . restore_from_tray )
Esc
und Ctrl+Alt+Q
verwenden, um die Taskleiste zu minimieren. 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
Tue keine schlechten Dinge, tue keine schlechten Dinge, tue keine schlechten Dinge! ! ! (Aber es scheint, als ob er nichts Schlimmes tun kann.
GUI
, auf die Tagesordnung gesetzt-18.03.2024 ThreadPool
+ QRunnable
mit mehreren Threads friert das Tool nicht ein GUI
Code. Die aktuelle MVC架构
ist nicht sinnvoll genug. Führen Sie main.py direkt aus
Code für den Betrieb von WeChat
Unabhängig davon, ob Sie eine einzelne Nachricht oder mehrere Nachrichten senden, müssen Sie in der Funktion send_msg ein iterierbares Objekt übergeben (z. B. list(), tuple()...
Sie können Text und Dateien gleichzeitig senden, aber nicht beides gleichzeitig! Senden Sie mindestens eines davon.
# 实例化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 = '你的标签' ) # 获取指定标签好友
Schauen Sie sich im Übrigen den Code selbst an. Er umfasst weniger als 100 Codezeilen ohne Kommentare.
Helfen Sie uns, mit der Langeweile des Gruppen-Messaging umzugehen und unsere Hände frei zu bekommen ( Haftungsausschluss , dieser Code dient nur zum Lernen, bitte verwenden Sie ihn nach dem Herunterladen nicht für kommerzielle Zwecke)