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