一般有兩種方法,我是用的是第一種
方法1:
在項目的第一個窗體的啟動事件中 如form1_load() 中添加如下語句
#region 判斷系統是否已啟動
System.Diagnostics.Process[] myProcesses = System.Diagnostics.Process.GetProcessesByName("這里是你的程序進程名");//獲取指定的進程名
if (myProcesses.Length > 1) //如果可以獲取到知道的進程名則說明已經啟動
{
MessageBox.Show("程序已啟動!");
Application.Exit(); //關閉系統
}
#endregion
===================================================================================
好了 這樣就可以達到防止用戶第二次啟動此程序的目的了
當然你也可以把它編輯成一個類 或生成一個dll文件 調用它。
方法2.
在項目的啟動引導文件 Program.cs中加入判斷語句
using System.Linq;
using System.Windows.Forms;
namespace XiaoZhiSoft
{
static class Program
{
/// <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);
}
}
}
}