Skip to content

多开与注入

自动接管

默认情况下(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()

基于 MIT 许可证发布