C#触发windows 10媒体通知
Posted
技术标签:
【中文标题】C#触发windows 10媒体通知【英文标题】:C# trigger windows 10 media notification 【发布时间】:2017-12-18 05:42:28 【问题描述】:如何将这些 Windows 10“媒体通知”实现到 C# WPF 桌面应用程序中?
【问题讨论】:
我也问过同样的问题。我已经在互联网上进行了很多研究,因此我完全没有发现任何东西(我的意思是不需要我花费数周时间才能完成的解决方案)我放弃了。我真的很好奇是否有人会有解决方案。 @L.Guthardt 真的! microsoft 自己有关于 toast 通知的非常详细的文档,但对这些媒体通知只字不提 Tbh 我认为你必须是个极客,并且需要对 Windows 本身有非常深入的了解才能操作它们的音量滑块。 是的,Spotify 是我所知道的唯一能做类似事情的应用程序。我的意思是有任何简单的教程可以为 UWP 做这件事,但一方面我不想要 UWP,另一方面我不知道如何将通知绑定到 Windows 音量滑块。 让我们continue this discussion in chat。 【参考方案1】:你说的是SystemMediaTransportControls 类。它在Microsoft Docs 上描述了它的用法。
但是,此 API 是为 UWP 设计的,因此要使其在 WPF 等常规桌面应用程序中工作需要做更多工作。 *** 上的 some answers 描述了如何执行此操作,但也有一些来自 Microsoft 的更新的官方 documentation 关于如何使用这些 WinRT API。
很遗憾,桌面应用 [5] 不直接支持 System Media Transport Controls API,因此它变得有点复杂,如本文所述 [6]。
简而言之,对于 .NET 5:
安装您喜欢的版本的 Windows 10 SDK(例如通过 VS 安装程序);
将目标框架更改为您安装的 SDK 版本,例如net5.0-windows10.0.19041.0
.
使用 [6] 中所述的 API 互操作来获取实例。
对于 SMTP,您需要使用 Windows.Media.SystemMediaTransportControlsInterop
。这需要窗口句柄,您可以在 WPF 中使用WindowInteropHelper
获得。
使用 [2] 中所述的 SystemMediaTransportControls 实例。
【讨论】:
以上是关于C#触发windows 10媒体通知的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 UWP 应用检测由另一个应用触发的 Windows 10 Toast 通知
Objective-C 中的 iOS 10 富媒体推送通知(媒体附件)
webkit中的错误? Windows 媒体播放器运行时鼠标移动事件连续触发