Il seguente metodo registra un'applicazione a uno schema URI. Pertanto, puoi utilizzare mycustproto: nel codice HTML per attivare un'applicazione locale. Funziona su Google Chrome versione 51.0.2704.79 m (64 bit).
Principalmente ho utilizzato questo metodo per stampare documenti in modo silenzioso senza che la finestra di dialogo di stampa spuntasse. Il risultato è piuttosto buono ed è una soluzione perfetta per integrare l'applicazione esterna con il browser.
codice HTML (semplice):
<a href="mycustproto:Hello World">Click Me</a>
codice HTML (in alternativa):
<input id="DealerName" />
<button id="PrintBtn"></button>
$('#PrintBtn').on('click', function(event){
event.preventDefault();
window.location.href = 'mycustproto:dealer ' + $('#DealerName').val();
});
URI Scheme sarà simile a questa:
È possibile creare lo schema URI manualmente nel registro o eseguire "mycustpro" to.reg "(vedi sotto).
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"
esempio mycustproto.reg:
C# applicazione console - 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();
}
}
}
tenta di eseguire il programma di prima per assicurarsi che il programma è stato inserito nel percorso corretto:
cmd> "C:\Program Files\MyProgram\myprogram.exe" "mycustproto:Hello World"
Clicca il link nella tua pagina HTML:
verrà visualizzata una finestra di avviso popup per la prima volta.
Per azzerare il gestore di protocollo esterno mettendo in Chrome:
Se avete mai accettato il protocollo personalizzato in Chrome e vorrebbe ripristinare le impostazioni, fare questo (attualmente, non v'è alcuna interfaccia utente in Chrome per modificare l'impostazione):
Modifica "Stato locale" questo file in questo percorso:
C:\Users\Username\AppData\Local\Google\Chrome\User Data\
o semplicemente andare a:
%USERPROFILE%\AppData\Local\Google\Chrome\User Data\
Poi, ricerca di questa stringa: protocol_handler
vedrete il protocollo personalizzato da lì.
Nota: Chiudi il tuo Google Chrome prima di modificare il file. In caso contrario, le modifiche apportate verranno sovrascritte da Chrome.
Riferimento:
https://msdn.microsoft.com/en-us/library/aa767914(v=vs.85).aspx
Non credo che Chrome supporta attualmente questo, ha una serie piuttosto limitato di API disponibili per le estensioni. –