View difference between Paste ID: JPHqV2e0 and DEkvvXZq
SHOW: | | - or go back to the newest paste.
1
//\\//\\//\\//\\//\\//\\//\\//\\//\\//
2
// Program.cs 02-Sep-2017
3
// 21-Feb-2018  MyEditor.Smesa
4
//\\//\\//\\//\\//\\//\\//\\//\\//\\//
5
// SMESAV Solution Started v1.0.1.00
6
// v1.0.1.02 02-Sep-2017
7
// v1.0.1.11 18-Oct-2017
8
// v1.1.2.26 12-Nov-2017 Solid Rocket
9
// v2.2.5.26 28-Dec-2017 Multi-Tabs
10
// v2.3.8.29 26-Jan-2018 Pass in Parms
11
// v2.5.9.30 04-Feb-2018 Release Tests
12
// v2.5.9.31 10-Feb-2018 Simplified.
13
// v2.6.0.32 15-Feb-2018 1351 Stocker
14
// v2.6.1.33 21-Feb-2018 1620 Mutexed
15
// v3.0.0.01 25-feb-2018 As WPF App.
16
// Experimental to pass args to an
17
// active 1st instance Smesa from a
18
// 2nd Instance Last Chance v3.0
19
// v3.0.0.37 28-Feb-2018 Hybrid.
20
// Working Model with hybrid strategy
21
// v3.1.1.38jamorama 07-Mar-2018 2332
22
//\\//\\//\\//\\//\\//\\//\\//\\//\\//
23
24
using System;
25
using System.IO;
26
using System.Linq;
27
using System.Threading;
28
using System.Diagnostics;
29
using System.Windows.Forms;
30
31
using SMS = MyEditor.Properties.Settings;
32
using SMR = MyEditor.Properties.Resources;
33
34
namespace MyEditor
35
{
36
  static class Program
37
  {
38
    private static bool _1St;
39
    public static Mutex MyMutex =
40
      new Mutex(false, "Smesa", out _1St);
41
42
    private static bool ProcessCheck()
43
    {
44
      var processes =
45
        Process.GetProcessesByName(
46
          Process.GetCurrentProcess()
47
            .ProcessName).ToList();
48
      if (processes.Count > 1
49
        && SMS.Default.Testing)
50
        // testcode has not been seen so
51
        // far; as OpenWith isn't an Option.
52
          MessageBox.Show(SMR.ProcChck);
53
      return processes.Count < 2;
54
    }
55
56
    /// <summary> v3.1.1.38
57
    /// 04-Mar-2018 1715 MmfIpc Mods
58
    /// CopyRight (c) 2018 Jp Edwards
59
    /// </summary>
60
    [STAThread]
61
    static void Main()
62
    {
63
      if (_1St)
64
      {
65
        if (!ProcessCheck()) return;
66
        Application.EnableVisualStyles();
67
        Application
68
          .SetCompatibleTextRenderingDefault
69
          (false);
70
        Application.Run(
71
          new Smesa(Args(), Mmfn()));
72
        MyMutex.Dispose();
73
      }
74
      else Main2();
75
      // For ALL Secondary Instances.
76
    }
77
78
    private static void Main2()
79
    {
80
      Application.Run(
81
        new Smesa(Mmfn(), Args()));
82
    }
83
84
    private static string Mmfn()
85
    {
86
      var root = SMS.Default.AppRoot =
87
        Directory.GetCurrentDirectory();
88
      SMS.Default.Save();
89
      return root + "\\mmf.sme";
90
    }
91
92
    private static string[] Args()
93
    {
94
      return
95
        Environment.GetCommandLineArgs();
96
    }
97
98
99
  }
100
}