c# - 如何创建 "custom protocol"并将其映射到应用程序?

标签 c# windows protocols

如何创建“自定义协议(protocol)”?我知道您可以通过向 HKEY_CLASSES_ROOT 添加一些注册表项来创建 URL 协议(protocol),但这似乎只适用于浏览器。我也需要它在 Windows 资源管理器中工作。

我知道我可以编写客户端/服务器类型的界面,但我认为这对我的客户的需求(和预算)来说太过分了。

长话短说...

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

这听起来相当简单(或者我认为如此)。有什么想法吗?

谢谢

最佳答案

只要将 REG_SZ 类型的 URL Protocol 值添加到类的键中,就可以创建自定义协议(protocol)。它不需要实际值,只需要存在即可。这是我刚刚创建的在 Windows 资源管理器中运行的“Echo 协议(protocol)”的简单示例。

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\SOFTWARE\Classes\echo]
"URL Protocol"=""
@="Echo Protocol"

[HKEY_CURRENT_USER\SOFTWARE\Classes\echo\shell]

[HKEY_CURRENT_USER\SOFTWARE\Classes\echo\shell\open]

[HKEY_CURRENT_USER\SOFTWARE\Classes\echo\shell\open\command]
@="C:\\WINDOWS\\SYSTEM32\\CMD.EXE /Q /C (echo %1) && pause"

然后,如果您在 Windows 资源管理器(或“运行”菜单)中键入路径:

enter image description here

enter image description here

它甚至应该也可以在浏览器中运行,您只需要像任何其他协议(protocol)一样进行确认: enter image description here enter image description here

它应该运行命令:

enter image description here

我发现它也适用于 HKCRHKLM\Software\Classes 键。

关于c# - 如何创建 "custom protocol"并将其映射到应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3964152/

相关文章:

c# - .NET 5.0 打开选择文件夹对话框

c# - 如何从数据表中设置dropdownlist的值?

c# - 如何迭代两个项目之间的集合?

.net - 如何监控 .Net 应用程序的跟踪输出?

windows - 批处理脚本 "Timeout"错误 : Invalid Syntax. 默认选项不允许超过 1 次

swift - 在泛型类型的委托(delegate)协议(protocol)中使用关联类型

ios - Swift ExpressibleByIntegerLiteral - 它究竟是如何工作的?

c# - 如何在这个 .aspx 页面上实现可折叠部分?

.net - PowerShell 3 : Every Command Execution Results In "The type initializer [...] threw an exception" Error

具有惰性属性的 Swift 协议(protocol) - 不能在不可变值 : '$0' is immutable 上使用变异 getter