如何创build“自定义协议”并将其映射到应用程序?

如何创build一个“自定义协议?” 我知道你可以通过向HKEY_CLASSES_ROOT添加一些registry项来创build一个URL协议,但似乎只能在浏览器中工作。 我也需要它在Windows资源pipe理器中工作。

我知道我可以编写一个客户端/服务器types的接口,但我认为这对我的客户的需求(和预算)是矫枉过正的。

长话短说…

  • 第三方应用程序应该调用: tbwx:<row_id>
  • 我的应用程序应该从数据库中加载和删除logging。

这听起来很简单(或者我认为)。 有任何想法吗?

谢谢

Solutions Collecting From Web of "如何创build“自定义协议”并将其映射到应用程序?"

至少在Windows 7上,只要将一个REG_SZ类型的URL Protocol值添加到密钥,就可以创建自定义协议。 它不需要实际的价值,只需要在场。 这里是我刚刚创建的“Echo协议”的一个简单例子,它在explorer中工作。

 Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\echo] "URL Protocol"="" @="Echo Protocol" [HKEY_CLASSES_ROOT\echo\shell] [HKEY_CLASSES_ROOT\echo\shell\open] [HKEY_CLASSES_ROOT\echo\shell\open\command] @="C:\\WINDOWS\\SYSTEM32\\CMD.EXE /Q /C (echo %1) && pause" 

我发现它也可以用于HKCU\Software\ClassesHKLM\Software\Classes 。 但是它没有在Control Panel\Programs\Default Programs\Set Associations列表中列出。 其他键可能需要更新,或者它必须以某种方式注册到Windows。

我想在Windows XP和更旧的版本是相同或相似的。

向URL协议注册应用程序文章详细介绍了该过程。 CodePlex上有一个可用于注册自定义URL协议的功能。 源代码提供。