Eu tenho visto:
http://www...
ftp://blah.blah...
file://blah.blah...
unreal://blah.blah...
mailto://blah.blah...
Como é a primeira seção em que você vê http
e coisas do gênero?
Posso registrar o meu?
Eu tenho visto:
http://www...
ftp://blah.blah...
file://blah.blah...
unreal://blah.blah...
mailto://blah.blah...
Como é a primeira seção em que você vê http
e coisas do gênero?
Posso registrar o meu?
Respostas:
A parte com a HTTP://
, FTP://
, etc são chamados esquemas URI
Você pode registrar seu próprio através do registro.
HKEY_CLASSES_ROOT/
your-protocol-name/
(Default) "URL:your-protocol-name Protocol"
URL Protocol ""
shell/
open/
command/
(Default) PathToExecutable
Fontes: https://www.iana.org/assignments/uri-schemes/uri-schemes.xhtml , http://msdn.microsoft.com/en-us/library/aa767914(v=vs.85).aspx
(Default)
aqui significa string vazia. Não leve isso literalmente.
Abra o bloco de notas e cole o código abaixo nele. Mude "YourApp" para o nome do seu aplicativo. Salve-o em YourApp.reg e execute-o clicando nele no explorer. É isso aí! Felicidades! Erwin Haantjes
REGEDIT4
[HKEY_CLASSES_ROOT\YourApp]
@="URL:YourApp Protocol"
"URL Protocol"=""
[HKEY_CLASSES_ROOT\YourApp\DefaultIcon]
@="\"C:\\Program Files\\YourApp\\YourApp.exe\""
[HKEY_CLASSES_ROOT\YourApp\shell]
[HKEY_CLASSES_ROOT\YourApp\shell\open]
[HKEY_CLASSES_ROOT\YourApp\shell\open\command]
@="\"C:\\Program Files\\YourApp\\YourApp.exe\" \"%1\" \"%2\" \"%3\" \"%4\" \"%5\" \"%6\" \"%7\" \"%8\" \"%9\""
Isso é diferente para cada navegador. No IE e no Windows, você precisa criar o que eles chamam de manipulador de protocolo conectável.
Os passos básicos são os seguintes:
Consulte Sobre protocolos conectáveis assíncronos no MSDN para obter mais detalhes no lado do Windows. Há também uma amostra no SDK do Windows.
Um rápido google também mostrou este artigo no codeproject: http://www.codeproject.com/KB/IP/DataProtocol.aspx .
Finalmente, como responsável pela segurança, devo salientar que esse código precisa ser reforçado. É um risco elevado, porque para fazê-lo de maneira confiável, você não pode fazê-lo no código gerenciado e precisa fazê-lo em C ++ (suponho que você possa usar o VB6). Você deve considerar se realmente precisa fazer isso e, se o fizer, projete-o com cuidado e codifique-o com segurança. Um invasor pode controlar facilmente o conteúdo que é passado para você simplesmente incluindo um link em uma página. Por exemplo, se você tiver um buffer overflow simples, é melhor que ninguém faça isso:<a href="custom:foooo{insert long string for buffer overflow here}"> Click me for free porn</a>
Considere enfaticamente o uso do strsafe e dos novos métodos seguros de CRT incluídos nos compiladores VC8 e acima. Consulte http://blogs.msdn.com/michael_howard/archive/2006/02/27/540123.aspx se você não tem idéia do que estou falando.
Aqui está uma lista dos esquemas de URI registrados . Cada um tem uma RFC - um documento que a define, o que é quase um padrão. O RFC informa aos desenvolvedores de novos aplicativos (como navegadores, clientes FTP, etc.) o que eles precisam oferecer suporte. Se você precisar de um novo protocolo de nível básico, poderá usar um não registrado. As outras respostas dizem como. Lembre-se de que você pode fazer muitas coisas com os protocolos existentes, obtendo assim as implementações existentes.
Para a maioria dos produtos Microsoft (Internet Explorer, Office, caixas de diálogo "abrir arquivo" etc.), é possível registrar um aplicativo para ser executado quando o URI com o prefixo apropriado for aberto. Esta é uma parte de uma explicação mais comum - como implementar seu próprio protocolo.
É chamado de protocolo. A única coisa que impede você de criar seu próprio protocolo é o seguinte:
O Windows facilita muito o número 1 e, em muitos casos, isso é tudo o que você realmente precisa. Viz:
A primeira seção é chamada de protocolo e sim, você pode registrar o seu próprio. No Windows (onde suponho que você esteja fazendo isso com a tag C # - desculpe fãs do Mono), isso é feito através do registro .
Um protocolo?
Achei isso, parece ser uma configuração local para um computador ...
Você realmente não precisa se registrar como tal. Eu já vi muitos programas, como o emule, criar seu próprio protocolo específico (é assim que eu acho que é chamado). Depois disso, você basicamente precisa definir alguns valores no registro sobre o programa que lida com esse protocolo. Não tenho certeza se existe algum registro oficial de especificadores de protocolo. Não há realmente muito para impedi-lo de criar seu próprio especificador de protocolo para o seu próprio aplicativo, se você quiser que as pessoas abram o aplicativo pelo navegador.