C# Winform 只能运行一个实例笔记
2009-05-18 15:43
441 查看
这里列举了比较常见的方法:
1、
static void Main()
{
bool initiallyOwned = true;
bool isCreated;
Mutex m = new Mutex(initiallyOwned,"MyTest",out isCreated);
if (!(initiallyOwned && isCreated))
{
MessageBox.Show("已经有相同的实例在运行。","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
Application.Exit();
}
else
{
Application.Run(new MainForm());
}
}
2、
static void Main()
{
int ProceedingCount = 0;
Process[] ProceddingCon = Process.GetProcesses();
foreach(Process IsProcedding in ProceddingCon)
{
if(IsProcedding.ProcessName == Process.GetCurrentProcess().ProcessName)
{
ProceedingCount += 1;
}
}
if(ProceedingCount > 1)
{
MessageBox.Show("该系统已经在运行中。","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
}
else
{
Application.EnableVisualStyles();
Application.DoEvents();
Application.Run(new MainForm());
}
}
3、
private static bool CheckInstance()
{
string procName = System.Diagnostics.Process.GetCurrentProcess().ProcessName;
if((System.Diagnostics.Process.GetProcessesByName(procName)).GetUpperBound(0) >0)
{
return true;
}
else
{
return false;
}
}
1、
static void Main()
{
bool initiallyOwned = true;
bool isCreated;
Mutex m = new Mutex(initiallyOwned,"MyTest",out isCreated);
if (!(initiallyOwned && isCreated))
{
MessageBox.Show("已经有相同的实例在运行。","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
Application.Exit();
}
else
{
Application.Run(new MainForm());
}
}
2、
static void Main()
{
int ProceedingCount = 0;
Process[] ProceddingCon = Process.GetProcesses();
foreach(Process IsProcedding in ProceddingCon)
{
if(IsProcedding.ProcessName == Process.GetCurrentProcess().ProcessName)
{
ProceedingCount += 1;
}
}
if(ProceedingCount > 1)
{
MessageBox.Show("该系统已经在运行中。","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
}
else
{
Application.EnableVisualStyles();
Application.DoEvents();
Application.Run(new MainForm());
}
}
3、
private static bool CheckInstance()
{
string procName = System.Diagnostics.Process.GetCurrentProcess().ProcessName;
if((System.Diagnostics.Process.GetProcessesByName(procName)).GetUpperBound(0) >0)
{
return true;
}
else
{
return false;
}
}
相关文章推荐
- c# Winform 如何实现程序只能同时运行一个实例
- C# WINFORM判断程序是否运行,且只能运行一个实例
- C# WINFORM判断程序是否运行,且只能运行一个实例
- C# WINFORM判断程序是否运行,且只能运行一个实例
- C# WINFORM判断程序是否运行,且只能运行一个实例
- C# WINFORM判断程序是否运行,且只能运行一个实例
- C# WINFORM判断程序是否运行,且只能运行一个实例(转)
- C#winform判断程序已经运,且只能运行一个实例
- C# WINFORM判断程序是否运行,且只能运行一个实例
- C# WinForm 判断程序是否已经在运行,且只允许运行一个实例,附源码
- C#[Win32&WinCE&WM]应用程序只能运行一个实例:MutexHelper
- c#学习笔记 只运行一个实例
- C# WinForm判断程序是否运行,且只能运行单个实例
- WinForm限制客户程序只能运行一个实例
- 应用程序每次只能运行一个实例(C#)
- C#[Win32&WinCE&WM]应用程序只能运行一个实例:MutexHelper
- C#笔记(17)程序只运行一个实例
- c# 程序只能运行一次(多次运行只能打开同一个程序) 并激活第一个实例,使其获得焦点,并在最前端显示.
- 转C# 只能运行一个winForm进程
- C# Winform只运行一个实例