Pesan grup WeChat, klien sistem Windows (klien PC
gui
menggunakan pyside6
WeChat
adalah uiautomation
Halaman utama
Tentang halaman
Tombol pintas untuk membangunkan WeChat
diubah ke tingkat sistem Windows
untuk membangunkan jendela WeChat.
def __wake_up_window ():
"""唤醒微信窗口"""
hwnd = win32gui . FindWindow ( 'WeChatMainWndForPC' , '微信' )
# 展示窗口
win32gui . SetForegroundWindow ( hwnd )
win32gui . ShowWindow ( hwnd , win32con . SW_SHOWDEFAULT )
Peningkatan kemampuan untuk mendapatkan nama panggilan dari panel saat ini untuk pencocokan ketika tidak ada 100% nama panggilan teman yang cocok
# 获取到真实的昵称(获取当前面板的备注名称), 有时候输入不全, 可以搜索到,但输入内容时候会报错
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
Saat mengirim pesan, jika nama panggilan teman di panel saat ini sama dengan nama panggilan teman yang akan dikirim, tidak perlu mencari lagi untuk melompat ke panel teman.
if self . __get_current_panel_nickname () != name :
self . __goto_chat_box ( name = name )
Saat alat ini dimulai, WeChat
dan alat tersebut akan berada di atas, dan WeChat
akan diminimalkan saat alat ditutup.
keyboard
dan tekan tombol pintasan Ctrl+Alt+Q
untuk menyembunyikan atau menampilkan alat import keyboard
keyboard . add_hotkey ( 'Ctrl+Alt+Q' , window . restore_from_tray )
Esc
dan Ctrl+Alt+Q
untuk memperkecil ke bilah tugas. 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
Jangan lakukan hal buruk, jangan lakukan hal buruk, jangan lakukan hal buruk! ! ! (Tapi sepertinya dia tidak bisa melakukan hal buruk.
GUI
, dimasukkan ke dalam agenda-18-03-2024 ThreadPool
+ QRunnable
multi-utas, alat tidak akan membeku GUI
. MVC架构
saat ini tidak cukup masuk akal. Jalankan main.py secara langsung
Kode untuk mengoperasikan WeChat
Dalam fungsi send_msg , apakah Anda mengirim satu pesan atau beberapa pesan, Anda harus meneruskan objek yang dapat diubah (misalnya: list(), tuple()...
Anda dapat mengirim teks dan file secara bersamaan, namun tidak keduanya secara bersamaan! Kirimkan setidaknya satu dari ini.
# 实例化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 = '你的标签' ) # 获取指定标签好友
Selebihnya, buka dan lihat sendiri kodenya. Kode tersebut kurang dari 100 baris, tidak termasuk komentar.
Bantu kami mengatasi kebosanan perpesanan grup dan bebaskan tangan kami ( Penafian , kode ini hanya untuk pembelajaran, mohon jangan menggunakannya untuk tujuan komersial setelah mengunduh)