El siguiente método registra una aplicación en un Esquema de URI. Por lo tanto, puede usar mycustproto: en su código HTML para activar una aplicación local. Funciona en una versión de Google Chrome 51.0.2704.79 m (64 bits).
Utilizo principalmente este método para imprimir documentos en silencio sin que aparezca el cuadro de diálogo de impresión. El resultado es bastante bueno y es una solución perfecta para integrar la aplicación externa con el navegador.
código HTML (simple):
<a href="mycustproto:Hello World">Click Me</a>
código HTML (alternativa):
<input id="DealerName" />
<button id="PrintBtn"></button>
$('#PrintBtn').on('click', function(event){
event.preventDefault();
window.location.href = 'mycustproto:dealer ' + $('#DealerName').val();
});
Esquema URI se verá así:
Usted puede crear el esquema URI manualmente en el registro, o ejecute el "mycustpro archivo.reg "(ver a continuación).
HKEY_CURRENT_USER\Software\Classes
mycustproto
(Default) = "URL:MyCustProto Protocol"
URL Protocol = ""
DefaultIcon
(Default) = "myprogram.exe,1"
shell
open
command
(Default) = "C:\Program Files\MyProgram\myprogram.exe" "%1"
ejemplo mycustproto.reg:
C# aplicación de consola - MyProgram.EXE:
using System;
using System.Collections.Generic;
using System.Text;
namespace myprogram
{
class Program
{
static string ProcessInput(string s)
{
// TODO Verify and validate the input
// string as appropriate for your application.
return s;
}
static void Main(string[] args)
{
Console.WriteLine("Raw command-line: \n\t" + Environment.CommandLine);
Console.WriteLine("\n\nArguments:\n");
foreach (string s in args)
{
Console.WriteLine("\t" + ProcessInput(s));
}
Console.WriteLine("\nPress any key to continue...");
Console.ReadKey();
}
}
}
intenta ejecutar el programa primero para asegurarse de que el programa se ha colocado en la ruta correcta:
cmd> "C:\Program Files\MyProgram\myprogram.exe" "mycustproto:Hello World"
Haga clic en el enlace en su página HTML:
verá una ventana emergente de alerta por primera vez.
para restablecer la configuración en Chrome controlador externo protocolo:
Si alguna vez ha aceptado el protocolo personalizado en Chrome y desea restablecer la configuración, hacer esto (en la actualidad, no existe sin interfaz de usuario en Chrome para cambiar la configuración):
Editar "Estado local" este archivo en esta ruta:
C:\Users\Username\AppData\Local\Google\Chrome\User Data\
o simplemente ir a:
%USERPROFILE%\AppData\Local\Google\Chrome\User Data\
Entonces, la búsqueda de esta cadena: protocol_handler
verá el protocolo personalizado a partir de ahí.
Nota: Cierre su Google Chrome antes de editar el archivo. De lo contrario, el cambio que ha realizado será sobrescrito por Chrome.
Referencia:
https://msdn.microsoft.com/en-us/library/aa767914(v=vs.85).aspx
No creo que Chrome es compatible actualmente con esto, tiene un conjunto bastante limitado de APIs disponibles para extensiones. –