if (inst == null) { Application.Run(new EIPNotify()); } } public static Process RunningInstance() { Process current = Process.GetCurrentProcess(); Process[] processes = Process.GetProcessesByName(current.ProcessName);
foreach (Process process in processes) { if (process.ProcessName == current.ProcessName && process.Id != current.Id) { return process; } } return null; }
看看用进程来限制只运行一个实例的方法/// <summary>
/// 應用程式的主要進入點。
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Process inst = RunningInstance();
if (inst == null)
{
Application.Run(new EIPNotify());
}
}
public static Process RunningInstance()
{
Process current = Process.GetCurrentProcess();
Process[] processes = Process.GetProcessesByName(current.ProcessName);
foreach (Process process in processes)
{
if (process.ProcessName == current.ProcessName && process.Id != current.Id)
{
return process;
}
}
return null;
}
System.Diagnostics.Process.GetProcesses();
foreach(System.Diagnostics.Process sProc in mProcs)
{
if(sProc.ProcessName=="YourProgram.exe")
{
MessageBox.Show("程序已经运行");
}
}
{
bool createdNew;
System.Threading.Mutex mutex_Application = new System.Threading.Mutex(true, "test", out createdNew);
if (!createdNew)
{
MessageBox.Show("本程序只允许同时运行一个!");
}
else
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new MNForm());
}
}