/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
bool isRuned;
System.Threading.Mutex mutex = new System.Threading.Mutex(true,"OnlyRunOneInstance", out isRuned);//
if (isRuned)//判断程序是否是第二次运行
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
mutex.ReleaseMutex();
}
else
{
MessageBox.Show("程序已启动!", "提示", MessageBoxButtons.OK,MessageBoxIcon.Information);
}
}
上面这个方法得到测试,可以通过。下面还有一个是找的,并没有尝试:
#region 判断系统是否已启动
System.Diagnostics.Process[] myProcesses = System.Diagnostics.Process.GetProcessesByName("这里是你的程序进程名");//获取指定的进程名
if (myProcesses.Length > 1) //如果可以获取到知道的进程名则说明已经启动
{
MessageBox.Show("程序已启动!");
Application.Exit(); //关闭系统
}
#endregion