【发布时间】:2018-03-16 05:04:31
【问题描述】:
UWP 应用可以使用Extension Category="windows.protocol" (MSDN) 注册自定义方案。我通过注册 URI 方案 (MSDN) 了解自定义协议处理程序,但这些处理程序总是启动应用程序的新实例。我想要的是 UWP 应用程序的行为:如果当前有一个正在运行的实例,它就会被激活。
我还研究了 URL Monikers 和异步可插入协议 (MSDN),但这些仅在进程中调用协议时才有效,例如在使用 Web 视图时。即使某个其他进程(例如 Web 浏览器)调用该协议,UWP 应用也会被激活。
这是针对 C++ Win32 桌面应用程序的; .NET 不是一个选项。
另外,正如我在对 Anders 提案的评论中所说,我不想在其他进程(例如浏览器)调用我的协议时创建一个单独的组件来激活我正在运行的应用程序。 UWP 应用没有这样的要求,我希望我的应用也有同样的要求。
【问题讨论】:
-
这将有助于澄清您的问题,如果您删除了 UWP 引用,而是简洁地发布了您所追求的要求。
-
执行此操作的标准方法是让应用程序在启动期间检查现有实例,如果有一个将请求传递给旧实例并终止。每个人都这样做,不仅在协议处理程序方面。这样做没有问题。