WeChat mass msg
原始版本
WeChat グループ メッセージング、Windows システム クライアント (PC クライアント)
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()...) を渡す必要があります。
テキストとファイルを同時に送信できますが、両方を同時に送信することはできません。これらのうち少なくとも 1 つを送信してください。
# 实例化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 行未満です。
グループ メッセージングの煩わしさに対処し、手を解放してください (免責事項、このコードは学習専用です。ダウンロード後は商業目的で使用しないでください)。