Appearance
多开与注入
自动接管
默认情况下(smart=True),PyWechat 会自动尝试接管已运行的微信客户端:
python
wechat = WeChat("4.1.2.17") # 自动接管手动控制
设置 smart=False 可以手动控制接管流程:
python
wechat = WeChat("4.1.2.17", smart=False)
# 接管已运行的微信
result = wechat.open()
# 多开一个新微信
result = wechat.multi_open()
# 指定微信路径多开
result = wechat.multi_open(r"C:\Program Files\Tencent\Weixin\Weixin.exe")
# 注入指定PID的微信进程
result = wechat.inject(pid=12345)多微信管理
同时管理多个微信时,通过 client_id 区分:
python
@wechat.handle(events.USER_LOGIN_MESSAGE)
def on_login(bot: WeChat, event: dict):
client_id = event["client_id"]
print(f"微信 {client_id} 已登录")
# 获取所有已接管的客户端
clients = wechat.clients
# 向指定客户端发消息
wechat.send_text(client_id=1, to_wxid="wxid_xxx", content="Hello")互斥模式
mutex=True(默认)时,初始化会先关闭已存在的 Hook 进程(wx.exe),确保不冲突:
python
# 互斥模式,会关闭已有的 wx.exe 进程
wechat = WeChat("4.1.2.17", mutex=True)
# 非互斥模式
wechat = WeChat("4.1.2.17", mutex=False)卸载注入
python
wechat.destroy()