Sorunun tamamı URL Protokolleri ile ilgili.Başvuru olmadan URL Protokolü işleme yeniden başlatılıyor
Bir URL Protokolü mcm denilen kayıt yaptırdı, ama herhangi bir web tarayıcısından, bunun çalışması her şey fark, t uygulamanın yeni bir örneğini oluşturur. Zaten çalışan bir örnekte protokol isteğini işlemek için herhangi bir yolu var mı?
Örneğin, uTorrent, torrent protokolünü kullanırken, uygulamayı tekrar çalıştırmadan isteği hemen işleme alır. argümanları okumak için
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();
}
}
Ve kod: Burada
Ben protokolü kayıt için kullandığınız koddur ... Ben gerçekten bu konuda ilginç bir şey bulamadı, bu yüzden burada soruyorumprivate 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;
}
Herhangi bir yardım büyük takdir :) Selamlamaları.
onunla çıkacağını bakarsak eminim Bir utorrent yüklemesinin ikinci bir örneğini görmek, mevcut bir örneğini tespit etmek ve bu yolla iletişim kurmak PC yeni komut satırı –
Ayrıca bkz http://stackoverflow.com/questions/917883/c-sharp-how-to-single-instance-application-that-accepts-new-parameters –
Oh Aslında ne buldum aranan. Teşekkürler Alex :) –