如何保证C#程序任何时候只能运行一个实例窗口
Admin
|
2010-7-4 0:40:08
|
TrackRecord:
1156
Times | Tag标签:asp.net
打印本页
您当前所处的位置是:〖首页〗→【文章页】
本站共有16个图文教程栏目,请用心拜读!
本站提供经典的Excel公式函数实例,Word排版技巧,PPT教程;同时更兼有Flash,PowerPoint,数据库等技术文章。
要想保证C#winformCS结构的桌面应用程序,任何时候只能运行一个实例窗口,可使用如下提供的三种代码,请阁下择其一二使用。
第一种代码:简洁函数型代码
private static bool CheckIsRun()
{
string procName = System.Diagnostics.Process.GetCurrentProcess().ProcessName;
if((System.Diagnostics.Process.GetProcessesByName(procName)).GetUpperBound(0) >0)
{
return true;
}
else
{
return false;
}
}
上述的一个函数代码,在使用的时候,只需要在窗体载入事件中,调用函数进行判断,之后再加入Application.Exit();语句实现退出即可。
第二种代码:常规型代码
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());
}
}
第三种代码:普通代码
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());
}
}
会员评论列表:

正在加载数据,请稍后……
针对本篇文章或本站,请您发表个人的建议或批评!