using
System;
using System.Collections.Generic;
using System.Windows.Forms;
using System.Threading;
using System.Diagnostics;
using System.Reflection;
namespace MyClient
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main( string [] args)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault( false );
// bool blnCreate;//Another method to make sure only one instance
// Mutex m = new Mutex(true, "MyClient", out blnCreate);
// if (blnCreate)
CloseRunningInstance();
Application.Run( new MainFrm());
}
// Close the existed instance of my application
static void CloseRunningInstance()
{
Process current = Process.GetCurrentProcess();
Process[] processes = Process.GetProcessesByName(current.ProcessName);
// Loop through the running processes in with the same name
foreach (Process process in processes)
{
// Ignore the current process
if (process.Id != current.Id)
{
// Make sure that the process is running from the exe file.
if (Assembly.GetExecutingAssembly().Location.Replace( " / " , " \\ " ) == current.MainModule.FileName)
{
// Close the other process instance.
process.Kill();
process.WaitForExit();
}
}
}
}
}
}
using System.Collections.Generic;
using System.Windows.Forms;
using System.Threading;
using System.Diagnostics;
using System.Reflection;
namespace MyClient
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main( string [] args)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault( false );
// bool blnCreate;//Another method to make sure only one instance
// Mutex m = new Mutex(true, "MyClient", out blnCreate);
// if (blnCreate)
CloseRunningInstance();
Application.Run( new MainFrm());
}
// Close the existed instance of my application
static void CloseRunningInstance()
{
Process current = Process.GetCurrentProcess();
Process[] processes = Process.GetProcessesByName(current.ProcessName);
// Loop through the running processes in with the same name
foreach (Process process in processes)
{
// Ignore the current process
if (process.Id != current.Id)
{
// Make sure that the process is running from the exe file.
if (Assembly.GetExecutingAssembly().Location.Replace( " / " , " \\ " ) == current.MainModule.FileName)
{
// Close the other process instance.
process.Kill();
process.WaitForExit();
}
}
}
}
}
}