+ mutex
This commit is contained in:
@@ -1,45 +1,30 @@
|
|||||||
using System;
|
using JiraTimeBot.UI;
|
||||||
using System.Diagnostics;
|
using System;
|
||||||
|
using System.Threading;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
using JiraTimeBot.UI;
|
|
||||||
|
|
||||||
namespace JiraTimeBot
|
namespace JiraTimeBot
|
||||||
{
|
{
|
||||||
static class Program
|
static class Program
|
||||||
{
|
{
|
||||||
|
private static Mutex _mutex = new Mutex(true, "{44426B3E-B901-4792-ACEA-1385D79DBAD1}");
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The main entry point for the application.
|
/// The main entry point for the application.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[STAThread]
|
[STAThread]
|
||||||
static void Main()
|
static void Main()
|
||||||
{
|
{
|
||||||
if (PriorProcess() != null)
|
if (_mutex.WaitOne(TimeSpan.Zero, true))
|
||||||
{
|
{
|
||||||
|
|
||||||
MessageBox.Show("Another instance of the app is already running.");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
Application.EnableVisualStyles();
|
Application.EnableVisualStyles();
|
||||||
Application.SetCompatibleTextRenderingDefault(false);
|
Application.SetCompatibleTextRenderingDefault(false);
|
||||||
Application.Run(new frmMain());
|
Application.Run(new frmMain());
|
||||||
|
_mutex.ReleaseMutex();
|
||||||
}
|
}
|
||||||
|
else
|
||||||
public static Process PriorProcess()
|
|
||||||
// Returns a System.Diagnostics.Process pointing to
|
|
||||||
// a pre-existing process with the same name as the
|
|
||||||
// current one, if any; or null if the current process
|
|
||||||
// is unique.
|
|
||||||
{
|
{
|
||||||
Process curr = Process.GetCurrentProcess();
|
MessageBox.Show("Another instance of the app is already running.");
|
||||||
Process[] procs = Process.GetProcessesByName(curr.ProcessName);
|
|
||||||
foreach (Process p in procs)
|
|
||||||
{
|
|
||||||
if ((p.Id != curr.Id) &&
|
|
||||||
(p.MainModule.FileName == curr.MainModule.FileName))
|
|
||||||
return p;
|
|
||||||
}
|
}
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user