如何在Windows中注册自定义URL协议?
我认为这在MSDN中涵盖,请参阅Registering an Application to a URL Protocol。
这将只适用于IE浏览器。 – Oded 2011-05-01 19:01:31
我正在编写基于oauth的应用程序,并且MSDN中描述的过程与Mozilla Firefox和Opera完全兼容(11.6) – 2012-04-26 13:28:17
MSDN链接很好,但安全信息并不完整。处理程序注册应该包含“%1”,而不是%1。这是一种安全措施,因为在调用自定义协议处理程序之前,某些URL源错误地解码了%20。
PS。您将获得整个网址,而不仅仅是网址参数。但是除了已经提到的%20->空间转换之外,URL可能会受到一些虐待。它有助于在URL语法设计中保守。不要随意丢弃//否则你会陷入乱七八糟的文件:// is。
转到
Start
然后在Find
型regedit
- >应该打开Registry editor
点击鼠标右键上
HKEY_CLASSES_ROOT
然后New
- >Key
- 在Key给由你想被称为URL中使用小写的名字(在我的情况下,这将是
testus://sdfsdfsdf
),然后点击鼠标右键上testus
- >然后New
- >String Value
并且没有价值地添加URL protocol
。 - 然后,像您协议做添加其它项(右鼠标
New
- >Key
)和类似testus
创建层次结构 - >shell
- >open
- >command
和里面command
更改(Default)
到您要启动的.exe
的路径,如果您要传递参数到您的exe然后包装路径exe文件""
并添加"%1"
的样子:"c:\testing\test.exe" "%1"
- 为了测试它的工作原理去
Internet Explorer
(不Chrome
或Firefox
),并输入testus:have_you_seen_this_man
这应该解雇你的.exe
(给你有些提示你想这样做 - 说是)并传入参数testus://have_you_seen_this_man
。
这里的样本控制台应用程序进行测试:
using System;
namespace Testing
{
class Program
{
static void Main(string[] args)
{
if (args!= null && args.Length > 0)
Console.WriteLine(args[0]);
Console.ReadKey();
}
}
}
希望这可以节省一些时间。
可能重复[如何创建自己的URL协议? (例如://...)](http://*.com/questions/389204/how-do-i-create-my-own-url-protocol-eg-so) – 2017-04-30 08:07:14