1using System;
2using System.Reflection;
3using System.Threading;
4using System.Windows.Forms;
5
6namespace SingleInstanceWinFormApplication
7{
8 static class Program
9 {
10 /// <summary>
11 /// The main entry point for the application.
12 /// </summary>
13 [STAThread]
14 static void Main()
15 {
16
17 bool firstApplicationInstance;
18
19 string mutexName = Application.UserAppDataPath.Replace("\\", "+") + Assembly.GetEntryAssembly().FullName;
20
21 Application.EnableVisualStyles();
22 Application.SetCompatibleTextRenderingDefault(false);
23
24 using (Mutex mutex = new Mutex(false, mutexName, out firstApplicationInstance))
25 {
26
27 if (!firstApplicationInstance)
28 {
29 Application.Run(new frmAlreadyRunning());
30 }
31 else
32 {
33 Application.Run(new frmMain());
34 }
35
36 }
37
38 }
39
40 }
41
42}
43