Mi pregunta es sobre protocolos de URL.Tratamiento del protocolo URL sin reinicios de la aplicación
He registrado un protocolo URL llama mcm, pero me di cuenta que cada vez que lo ejecuto desde cualquier navegador web, t crea una nueva instancia de la aplicación. ¿Hay alguna forma de manejar la solicitud de protocolo en una instancia ya en ejecución?
Por ejemplo, cuando uTorrent está utilizando el protocolo torrent Maneja la solicitud inmediatamente sin ejecutar la aplicación nuevamente. Realmente no pude encontrar nada interesante al respecto, por lo que estoy pidiendo aquí ...
Este es el código que utilizo para registrar el protocolo:
private static void RegisterUrlProtocol()
{
UnregisterUrlProtocol();
RegistryKey rKey = Registry.ClassesRoot.OpenSubKey(UrlProtocol, true);
if (rKey == null)
{
rKey = Registry.ClassesRoot.CreateSubKey(UrlProtocol);
rKey.SetValue("", "URL: MazCraft Protocol");
rKey.SetValue("URL Protocol", "");
rKey = rKey.CreateSubKey(@"shell\open\command");
rKey.SetValue("", "\"" + Application.ExecutablePath + "\" %1");
}
if (rKey != null)
{
rKey.Close();
}
}
Y el código para leer los argumentos:
private static bool CheckForProtocolMessage()
{
string[] arguments = Environment.GetCommandLineArgs();
if (arguments.Length > 1)
{
string[] args = arguments[1].Split(':');
args[1] = args[1].Replace("//", "");
if (args[0].Trim().ToUpper() == "MCM" && args.Length > 1)
{
string[] actionDetail = args[1].Split('=');
if (actionDetail[0].Trim().ToUpper() == "INSTALL" && actionDetail.Length > 1)
{
string id = actionDetail[1].Trim().Replace("/", "");
Funcs.ID = id;
return true;
}
}
}
return false;
}
Cualquier ayuda sería muy apreciada :) Saludos.
apuesto si se mira lo haría ver una segunda instancia de carga utorrent, detectar una instancia existente de sí mismo y comunicarse a través de I PC la nueva línea de comando –
También vea http://stackoverflow.com/questions/917883/c-sharp-how-to-single-instance-application-hat-accepts-new-parameters –
Oh, en realidad encontré lo que he querido. Gracias Alex :) –