Como registro um protocolo personalizado no Windows para que, ao clicar em um link em um e-mail ou página da web, meu aplicativo seja aberto e os parâmetros da URL sejam passados para ele?
Como registro um protocolo personalizado no Windows para que, ao clicar em um link em um e-mail ou página da web, meu aplicativo seja aberto e os parâmetros da URL sejam passados para ele?
Respostas:
Vá para Startentão Finddigite regedit-> deve abrirRegistry editor
Clique Right Mouseem HKEY_CLASSES_ROOTe New->Key
testus://sdfsdfsdf) e clique Right Mouseem testus-> então New-> String Valuee adicione URL protocolsem valor.New-> Key) e crie uma hierarquia como testus-> shell-> open-> commande commandmude (Default)para o caminho onde .exevocê deseja iniciar, se você deseja passar parâmetros para o seu exe, encapsule o caminho para o exe em ""e adicione "%1"para se parecer com:"c:\testing\test.exe" "%1" Internet Explorer(não Chromeou Firefox) e digite testus:have_you_seen_this_manisso deve disparar seu .exe(dar-lhe alguns prompts de que deseja fazer isso - diga Sim) e passar para args testus://have_you_seen_this_man.Este é um exemplo de aplicativo de console 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 economize algum tempo.
Acho que isso é abordado no MSDN, consulte Registrando um aplicativo em um protocolo de URL .
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. Esta é uma medida de segurança, porque algumas origens de URL decodificam incorretamente% 20 antes de chamar seu manipulador de protocolo personalizado.
PS. Você obterá o URL completo, não apenas os parâmetros de URL. Mas a URL pode estar sujeita a alguns maus tratos, além da já mencionada conversão de espaço% 20->. Ajuda ser conservador no design da sintaxe de URL. Não jogue aleatoriamente // ou você entrará na confusão que o arquivo: // é.