it-swarm-pt.tech

Como registro um protocolo de URL personalizado no Windows?

Como registro um protocolo personalizado no Windows para que, ao clicar em um link em um email ou em uma página da web, meu aplicativo seja aberto e os parâmetros da URL sejam passados ​​para ele?

50
lukeck
  1. Vá para Start e em Find digite regedit -> ele deve abrir Registry editor

  2. Clique Right Mouse em HKEY_CLASSES_ROOT então New -> Key

enter image description here

  1. Na chave, forneça o nome em minúsculas pelo qual você deseja que os URLs sejam chamados (no meu caso, será testus://sdfsdfsdf) então clique Right Mouse em testus -> depois New -> String Value e adicione URL protocol sem valor.

enter image description here

  1. Em seguida, adicione mais entradas como você fez com o protocolo ( Right Mouse New -> Key) e crie hierarquia como testus -> Shell -> open -> command e dentro de command change (Default) para o caminho em que .exe você deseja iniciar é, se você deseja passar parâmetros para o seu exe, em seguida, abra o caminho para exe em "" e adicione "%1" se parecer: "c:\testing\test.exe" "%1"

enter image description here

  1. Para testar se funciona, vá para Internet Explorer (não Chrome ou Firefox) e insira testus:have_you_seen_this_man isso deve disparar seu .exe (dê alguns avisos que você deseja fazer - diga Sim) e passe para args testus://have_you_seen_this_man.

Aqui está um aplicativo de console de amostra para testar:

using System;

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

Espero que isso poupe algum tempo.

25
Matas Vaitkevicius

O link do MSDN é bom, mas as informações de segurança não estão completas. O registro do manipulador deve conter "% 1", não% 1. Essa é uma medida de segurança, porque algumas fontes de URL decodificam incorretamente% 20 antes de chamar seu manipulador de protocolo personalizado.

PS. Você obterá o URL inteiro, não apenas os parâmetros do URL. Mas a URL pode estar sujeita a maus-tratos, além da já mencionada% 20-> conversão de espaço. Ajuda a ser conservador no design da sintaxe de URL. Não jogue aleatoriamente // ou você entrará na bagunça que o arquivo: // é.

19
MSalters