Lekce 2 - Přítomnost .NET 3.5 SP1 a Mutex - ISIM
Program.cs
Kontrola jeho dostupnosti by měla vypadat tedy nějak takto:
// Kontrola přítomnosti požadované verze .NET FW string netSPver = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5").GetValue("SP").ToString(); // Pokud tam hodnota není nebo je 0 zobrazí se zpráva s odkazem na stažení FW a po odpovědi na ni se program vypne if ((string.IsNullOrEmpty(netSPver)) || (netSPver == "0")) { if (MessageBox.Show("Aplikace vyžaduje .NET Framework min. v.3.5 SP1, který ve vašem počítači nebyl nalezen.\nPřejete si jej nyní stánout? (bez něj aplikaci nelze spustit)", "Chyba", MessageBoxButtons.YesNo, MessageBoxIcon.Error) == DialogResult.Yes) System.Diagnostics.Process.Start("http://www.microsoft.com/download/en/details.aspx?id=22"); return; }
Mutex aplikace, pro kontrolu jedné instance aplikace. Něco ještě nemáme hotové, ale to časem dopíšeme. Nechci přebíhat z jednotlivých tříd, abychom se v tom pak neztratily. Více zde: http://www.itnetwork.cz/…gle-instance
// Mutex aplikace -> ke kontrole, zda aplikace již neběží. Pokud ano tak vyšle signál, který zobrazí její hlavní okno bool createdNew = true; System.Threading.Mutex appMutex = new System.Threading.Mutex(true, "ISIM", out createdNew); if (createdNew) { // Absence této metody, může způsobit, že se mutex nezapíše a aplikace bude moci být spuštěna vícekrát appMutex.ReleaseMutex(); // Aby byla instance hlavního okna aplikace přístupná ze všady Global.OpenForms.mainForm = new MainForm(); Application.Run(Global.OpenForms.mainForm); } else Global.SingleInstance.ShowForm();