ntchat/examples/cmd_close_event.py
2022-08-30 16:10:10 +08:00

48 lines
1.1 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# -*- coding: utf-8 -*-
import sys
import time
import ntchat
try:
import win32api
except ImportError:
print("Error: this example require pywin32, use `pip install pywin32` install")
sys.exit()
wechat = ntchat.WeChat()
# 打开pc微信, smart: 是否管理已经登录的微信
wechat.open(smart=True)
# 注册消息回调
@wechat.msg_register(ntchat.MT_RECV_TEXT_MSG)
def on_recv_text_msg(wechat_instance: ntchat.WeChat, message):
data = message["data"]
from_wxid = data["from_wxid"]
self_wxid = wechat_instance.get_login_info()["wxid"]
# 判断消息不是自己发的,并回复对方
if from_wxid != self_wxid:
wechat_instance.send_text(to_wxid=from_wxid, content=f"你发送的消息是: {data['msg']}")
def exit_application():
ntchat.exit_()
sys.exit()
def on_exit(sig, func=None):
exit_application()
# 当关闭cmd窗口时
win32api.SetConsoleCtrlHandler(on_exit, True)
# 以下是为了让程序不结束如果有用于PyQt等有主循环消息的框架可以去除下面代码
try:
while True:
time.sleep(0.5)
# 当Ctrl+C结束程序时
except KeyboardInterrupt:
exit_application()