是否存在类似于UWP windows.protocol的桌面机制?

时间:2017-10-04 17:44:36

标签: c++ windows winapi

UWP应用可以使用Extension Category="windows.protocol"MSDN)注册自定义方案。我通过注册URI方案(MSDN)来了解自定义协议处理程序,但这些方案始终会启动应用程序的新实例。我想要的是UWP应用程序的行为:如果当前正在运行的实例,它将被激活。

我还查看了URL Monikers和异步可插入协议(MSDN),但这些只在调用进程内协议时才有效,例如在使用Web视图时。即使某些其他进程(例如Web浏览器)调用协议,也会激活UWP应用程序。

这适用于C ++ Win32桌面应用程序; .NET不是一种选择。

另外,正如我在对Anders的提案中所说的那样,我不想创建一个单独的组件来激活我正在运行的应用程序,而某些其他进程(例如浏览器)会调用我的协议。 UWP应用程序没有这样的要求,我希望我的应用程序也一样。

1 个答案:

答案 0 :(得分:0)

您可以实现IExecuteCommand,这是Internet Explorer为其HTTP注册(DelegateExecute)所做的事情。您的实现可以简单地查找应用程序的现有实例并与之通信(如果有)或正常启动。

This blog post应该让你开始......