如何在Windows中注册自定义URL协议?
如何在Windows中注册自定义协议,以便在单击电子邮件中的链接或网页时打开我的应用程序,并将URL中的parameter passing给它?
我认为这是在MSDN中介绍的,请参阅注册应用程序到URL协议 。
MSDN链接很好,但是那里的安全信息并不完整。 处理程序注册应该包含“%1”,而不是%1。 这是一个安全措施,因为在调用自定义协议处理程序之前,某些URL源错误地解码了%20。
PS。 您将获得整个url,而不仅仅是url参数。 但是除了已经提到的%20->空间转换之外,URL可能受到一些虐待。 这有助于在URL语法devise中保守。 不要随便乱扔//否则你会陷入乱七八糟的文件:// is。
-
转到
Start然后在Findtypesregedit– >它应该打开Registry editor -
在
HKEY_CLASSES_ROOT上单击鼠标右键 ,然后单击New– >Key
- 在键给你想要的URL小写名称(在我的情况下,它将是
testus://sdfsdfsdf),然后单击鼠标右键在testus– >然后New– >String Value并添加URL protocol没有价值。
- 然后像使用协议( 鼠标右键
New– >Key)一样添加更多条目,并创build像testus– >shell– >open– >command和command内部command更改(Default)到您要启动的.exe的path,如果你想传递参数到你的exe文件,然后将path包装到""并添加"%1",如下所示:"c:\testing\test.exe" "%1"
- 要testing它是否工作到
Internet Explorer(不是Chrome或Firefox),并inputtestus:have_you_seen_this_man这应该激发你的.exe(给你一些提示,你想这样做 – 说是),并传递到argstestus://have_you_seen_this_man。
这里是示例控制台应用程序来testing:
using System; namespace Testing { class Program { static void Main(string[] args) { if (args!= null && args.Length > 0) Console.WriteLine(args[0]); Console.ReadKey(); } } }
希望这可以为你节省一些时间。