如何创建“自定义协议”?我知道您可以通过向HKEY_CLASSES_ROOT添加大量注册表项来创建URL协议,但这似乎只能在浏览器中使用。我还需要它在Windows资源管理器中工作。
我知道我可以编写一个客户端/服务器类型的界面,但我认为这对我的客户的需求(和预算)来说太过分了。
长话短说......
tbwx:<row_id>
这听起来很简单(或者我认为)。有什么想法吗?
由于
答案 0 :(得分: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"
我发现它也适用于密钥HKCU\Software\Classes
和HKLM\Software\Classes
。但是,它未列在Control Panel\Programs\Default Programs\Set Associations
列表中。其他密钥可能需要更新,或者必须以某种方式在Windows中注册。
我认为在旧版Windows XP及更高版本中它是相同或类似的。
答案 1 :(得分:4)
Registering an Application to a URL Protocol文章详细介绍了该过程。 uilitiy上CodePlex可用于注册自定义URL协议。提供源代码。