赞
踩
目录
针对有全屏且任务栏设置隐藏习惯,但是隐藏任务栏后情况,在电脑上看不到微信PC端新消息的问题进行以下方案解决,前提是电脑为Win10系统,手机为安卓手机,如果不是安卓手机,则请按crtl+w或Alt+F4
格式为 通知标题:消息发送者或群名,通知内容:具体的消息内容
微信消息主窗口打开则不进行通知提醒,微信消息主窗口关闭(不是最小化)后则新消息通知
最小化微信消息窗口,来新消息不提醒,win10任务栏会自动显示并且闪烁微信任务栏图标
SmsForwarder短信转发器监听安卓手机的微信新消息弹出,并在SmsForwarder短信转发器中配置监听规则与转发通道,将微信新消息转发到Python发布出去的端口中
Python编写脚本实现消息的获取和对接Windows通知API接口,将获取到的消息解析并调用通知API将消息提示出来
SmsForwarder短信转发器配置如下
1、发送通道->右上角+新增->选择Webhook类型
2、通道名称随意起名,请求方式为GET,Webhook Server地址写电脑Python脚本启动后的IP地址+端口号,消息模板固定为[msg]
3、转发规则->右上角+新增->选择刚新建的发送通道
匹配字段:APP包名
匹配模式:是
匹配的值:com.tencent.mm,也可以使用已安装列表直接搜索微信,自动会带出来匹配的值
启用自定义模板,模板内容:{{通知标题}}$$${{通知内容}},$$$这个是用来分割内容的,在Python脚本中定义好,用其他分隔符也可以,只要和Python脚本中分割字符串对应上即可
4、通用设置
转发应用通知:开启
开启启动:开启
忽略电池优化设置:开启
Python脚本内容如下:
- from flask import Flask, request
- from winotify import Notification
- import urllib.parse
- import win32gui
- import win32con
-
-
- app = Flask(__name__)
-
-
-
-
- @app.route('/') # 获取url信息
- def getUrlInfo():
- # 完整url
- url = request.url
- # 主机部分
- hostUrl = request.host_url
- # 访问路径
- fullPath = request.full_path
- # 处理空格转为+的问题
- fullPath = fullPath.replace('+', ' ')
- # 输出
- print('收到推送任务,推送内容是:' +
- str(
- urllib.parse.unquote(
- fullPath.split("/?")[1]
- )
- ).replace('+', ' ', 1)
- )
-
-
- # 接收到的内容
- content = str(
- urllib.parse.unquote(fullPath.split("/?")[1])
- ).replace('+', ' ', 1)
-
-
- hwnd = win32gui.FindWindow("WeChatMainWndForPC", u"微信")
-
-
- if win32gui.IsWindowVisible(hwnd):
- print('不推送')
- return "not push"
- else:
- print('推送开始')
- titleNameCheck = "$$$" in content
-
-
- if titleNameCheck == True:
- nickname = content.split("$$$")[0]
- weixinMsg = content.split("$$$")[1]
- else:
- nickname = '微信消息通知'
- weixinMsg = content
-
-
- # 开发Push通知
- # toaster = ToastNotifier()
- # toaster.show_toast(title=nickname, msg=weixinMsg,icon_path="logo.ico", duration=5)
- toast = Notification(
- app_id = "微信",
- title = nickname,
- msg = weixinMsg,
- icon = "D:/noticeWeChatMsg/weixin.png"
- )
- toast.show()
- print('推送结束')
- return "push ok"
-
-
-
-
- # def notify(hwnd, msg, wparam, lparam):
- # # print("notify", msg)
- # if lparam == win32con.WM_LBUTTONDBLCLK: # 双击左键
- # print("双击左键", msg)
- # pass
- # elif lparam == win32con.WM_RBUTTONUP: # 右键弹起
- # print("右键弹起", msg)
- # pass
- # elif lparam == win32con.WM_LBUTTONUP: # 左键弹起
- # print("左键弹起", msg)
- # pass
- # return True
-
-
-
-
- # wc = win32gui.WNDCLASS()
- # wc.hInstance = win32gui.GetModuleHandle(None)
- # wc.lpszClassName = "微信新消息通知"
- # wc.style = win32con.CS_VREDRAW | win32con.CS_HREDRAW
- # wc.lpfnWndProc = notify
- # classAtom = win32gui.RegisterClass(wc)
- # hwnd = win32gui.CreateWindow(
- # classAtom,
- # "tst2",
- # win32con.WS_OVERLAPPEDWINDOW,
- # win32con.CW_USEDEFAULT,
- # win32con.CW_USEDEFAULT,
- # win32con.CW_USEDEFAULT,
- # win32con.CW_USEDEFAULT,
- # None,
- # None,
- # None,
- # None
- # )
- # notify_id = (
- # hwnd,
- # 0,
- # win32gui.NIF_ICON | win32gui.NIF_MESSAGE | win32gui.NIF_TIP,
- # win32con.WM_USER + 20,
- # win32gui.LoadIcon(
- # 0,
- # win32con.IDI_APPLICATION
- # ),
- # "微信新消息通知"
- # )
- # win32gui.Shell_NotifyIcon(0, notify_id)
-
-
- # win32gui.PumpMessages()
- # 在指定IP和端口开启HTTP服务
- if __name__ == '__main__':
- app.run(debug=False, host='192.168.137.1', port=9998)
通知图标微信图片源自微信官方资源https://developers.weixin.qq.com/doc/oplatform/Downloads/Design_Resource.html,将图片和脚本放置同一个目录文件夹下,将脚本内容与图片位置对应上:
- # 改成实际的图片存放位置这是放到D:/noticeWeChatMsg/文件夹下
- icon = "D:/noticeWeChatMsg/weixin.png"
安装完毕Python后,在运行脚本之前需要在本地安装脚本中所依赖的第三方库,使用pip install 模块名称进行安装,例如:
pip install flask
在脚本所在目录下Python执行脚本
python noticeWeChatMsg.py
启动后浏览器访问 http://192.168.137.1:9998?推送内容三生三世 可进行测试,看是否推送到Windows通知,如下图所示:
电脑开启热点,手机连接电脑热点,使用转发规则进行发送测试,右下角出现通知内容则算成功
参考文章:
Python实现Windows弹出微信消息通知(可显示发送人和消息内容)https://segmentfault.com/a/1190000042388968
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。