首页 / 知识

如何在Windows中注册自定义URL协议?

2023-04-16 10:24:00

How do I register a custom URL protocol in Windows?

如何在Windows中注册自定义协议,以便在单击电子邮件或网页上的链接时打开我的应用程序,并将URL中的参数传递给它?


  • 转到Start,然后在Find中键入regedit->它应打开Registry editor

  • 单击HKEY_CLASSES_ROOT上的Right Mouse,然后单击New-> Key

  • enter image description here

  • 在"密钥"中,输入要用来调用url的小写名称(在我的情况下为testus://sdfsdfsdf),然后在x8>->上单击Right Mouse,然后在New-> String Value上单击并添加URL protocol没有价值。
  • enter image description here

  • 然后像添加协议一样添加更多条目(Right Mouse New-> Key)并创建testus-> shell-> open-> command等层次结构,并在command内部更改< x19>到要启动的.exe所在的路径,如果要将参数传递给exe,则在""中将exe的路径包装并添加"%1"如下所示:"c:\testing\test.exe""%1"
  • enter image description here

  • 要测试它是否有效,请转到Internet Explorer(不是ChromeFirefox)并输入testus:have_you_seen_this_man,这应该会触发您的.exe(给您一些提示,请您执行此操作-说"是??")并传递给args testus://have_you_seen_this_man
  • 这是要测试的示例控制台应用程序:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    using System;

    namespace Testing
    {
        class Program
        {
            static void Main(string[] args)
            {
                if (args!= null && args.Length > 0)
                Console.WriteLine(args[0]);
                Console.ReadKey();
            }
        }
    }

    希望这可以节省您一些时间。


    我认为这在MSDN中已涉及,请参阅将应用程序注册到URL协议。


    MSDN链接很好,但是那里的安全信息还不完整。处理程序注册应包含"%1",而不是%1。这是一种安全措施,因为某些URL源在调用自定义协议处理程序之前会错误地解码%20。

    PS。您将获得整个URL,而不仅仅是URL参数。但是,除了已经提到的%20-> space转换之外,URL可能还会受到一些虐待。在您的URL语法设计中保持保守很有帮助。不要乱扔// //否则会陷入file://的混乱局面。


    协议注册自定义单击

    最新内容

    相关内容

    猜你喜欢