求助, 如何在 windows 上实时收集浏览器发送的通知?

114 天前
 Chippy

我折腾了好多天, 都没搞出来, 以下是我的尝试

  1. python 使用 winsdk 模块 去实时监听 windows 的 notification 结果和下面的 链接一样, 报错找不到元素 https://stackoverflow.com/questions/74124560/tried-to-listen-to-windows-notification-but-got-element-not-found-error

  2. 直接使用 winsdk, 照着微软的文档 尝试用 C#去完成, 但是这部分方法的命名空间是 windows.ui, 好像是 uwp 专用的, 我好像用的是普通的.net, 用不了哪些方法, 也不想去了解 uwp, 于是直接放弃了 https://learn.microsoft.com/en-us/windows/apps/design/shell/tiles-and-notifications/notification-listener

  3. 打算编写 chrome 插件去捕获 网页的 notification.onCreated 信号 (询问 chatgpt 得来的), 但是最新的 chromne 好像不支持这个信号了, 好像是 google 在限制插件的权限, 不让这样操作了 https://developer.chrome.com/docs/extensions/reference/api/notifications?hl=zh-cn

  4. 尝试了下 puppeteer 工具去监视 chrome 的 notification, 我不太会用, 也不知道它是不是真的有这个功能?

  5. 或许我不需要编写代码? 本地会保存 notification 的历史? https://superuser.com/questions/1035042/is-there-any-way-to-view-chrome-browser-notifications-history chrome 的保存路径在 %LocalAppData%\Google\Chrome\User Data\Default\Platform Notifications 但我进去看了下 通知不是完整的, 我需要的那个网站的通知不在这里 而 windows 会把通知保存在 C:\Users\usrname\AppData\Local\Microsoft\Windows\Notifications, 我也同样没找到

所以求助下大家我到底应该怎么做? 实在没有办法的话 我就转到 ubuntu 上去做了, linux 上处理这个问题应该是有方法的?

1279 次点击
所在节点    程序员
4 条回复
macaodoll
114 天前
自己写个桌面程序内嵌浏览器,打开你需要监控的页面,内嵌浏览器有 API 可以做这些。
llsquaer
113 天前
直接抓接口不行么?
ysc3839
113 天前
WinRT API 并不是 UWP 专用,有一些是 UWP 和 Win32 都能用的。
之前可以看文档里有没有 DualApiPartitionAttribute ,有的话说明 Win32 应用也可以用。不过现在文档里似乎都把这个删掉了,只能实际测试才知道了。
TenRice
113 天前
https://github.com/gpsnmeajp/NotificationListenerThrower

可以参考一下这个项目,Chrome 125.0.6422.142 测试可以正常捕获通知

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1047494

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX