//\\//\\//\\//\\//\\//\\//\\//\\//\\// // Program.cs 02-Sep-2017 // 21-Feb-2018 MyEditor.Smesa //\\//\\//\\//\\//\\//\\//\\//\\//\\// // SMESAV Solution Started v1.0.1.00 // v1.0.1.02 02-Sep-2017 // v1.0.1.11 18-Oct-2017 // v1.1.2.26 12-Nov-2017 Solid Rocket // v2.2.5.26 28-Dec-2017 Multi-Tabs // v2.3.8.29 26-Jan-2018 Pass in Parms // v2.5.9.30 04-Feb-2018 Release Tests // v2.5.9.31 10-Feb-2018 Simplified. // v2.6.0.32 15-Feb-2018 1351 Stocker // v2.6.1.33 21-Feb-2018 1620 Mutexed // v3.0.0.01 25-feb-2018 As WPF App. // Experimental to pass args to an // active 1st instance Smesa from a // 2nd Instance Last Chance v3.0 // v3.0.0.37 28-Feb-2018 Hybrid. // Working Model with hybrid strategy // v3.1.1.38jamorama 07-Mar-2018 2332 //\\//\\//\\//\\//\\//\\//\\//\\//\\// using System; using System.IO; using System.Linq; using System.Threading; using System.Diagnostics; using System.Windows.Forms; using SMS = MyEditor.Properties.Settings; using SMR = MyEditor.Properties.Resources; namespace MyEditor { static class Program { private static bool _1St; public static Mutex MyMutex = new Mutex(false, "Smesa", out _1St); private static bool ProcessCheck() { var processes = Process.GetProcessesByName( Process.GetCurrentProcess() .ProcessName).ToList(); if (processes.Count > 1 && SMS.Default.Testing) // testcode has not been seen so // far; as OpenWith isn't an Option. MessageBox.Show(SMR.ProcChck); return processes.Count < 2; } /// v3.1.1.38 /// 04-Mar-2018 1715 MmfIpc Mods /// CopyRight (c) 2018 Jp Edwards /// [STAThread] static void Main() { if (_1St) { if (!ProcessCheck()) return; Application.EnableVisualStyles(); Application .SetCompatibleTextRenderingDefault (false); Application.Run( new Smesa(Args(), Mmfn())); MyMutex.Dispose(); } else Main2(); // For ALL Secondary Instances. } private static void Main2() { Application.Run( new Smesa(Mmfn(), Args())); } private static string Mmfn() { var root = SMS.Default.AppRoot = Directory.GetCurrentDirectory(); SMS.Default.Save(); return root + "\\mmf.sme"; } private static string[] Args() { return Environment.GetCommandLineArgs(); } } }