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();
}
}
}
}
}
}
本文转自CoderZh博客园博客,原文链接:http://www.cnblogs.com/coderzh/archive/2007/12/10/989375.html,如需转载请自行联系原作者