如何创建"自定义协议"并将其映射到应用程序?

cod*_*pro 7 c# windows protocols

如何创建"自定义协议"?我知道您可以通过向HKEY_CLASSES_ROOT添加大量注册表项来创建URL协议,但这似乎只能在浏览器中使用.我还需要它在Windows资源管理器中工作.

我知道我可以编写一个客户端/服务器类的接口,但我认为这对我的客户的需求(和预算)来说太过分了.

长话短说...

  • 第三方应用程序应致电: tbwx:<row_id>
  • 我的应用程序应该从数据库加载和删除记录.

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

谢谢

Jef*_*ado 10

至少在Windows 7上,只要向键添加URL Protocol类型值,就可以创建自定义协议REG_SZ.它不需要实际值,只需要存在即可.这是我刚刚创建的"回声协议"的一个简单示例,它可以在资源管理器中运行.

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"
Run Code Online (Sandbox Code Playgroud)

我发现它也将工作中的键HKCU\Software\ClassesHKLM\Software\Classes太.但是它没有在Control Panel\Programs\Default Programs\Set Associations列表中列出.其他密钥可能需要更新,或者必须以某种方式在Windows中注册.

我想在旧版Windows XP及更高版本中它是相同或相似的.


Gar*_*ett 5

应用程序注册到 URL 协议一文详细介绍了该过程。GitHub 上有一个实用程序可用于注册自定义 URL 协议。提供了源代码。