如何只让Windows程序只启动一个实例,第二个实例启动只激活第一个实例

/// <summary>
/// 从这里开始运行
/// </summary>

[STAThread]
static void Main() 
{
 Process instance 
= RunningInstance();
 
if (instance == null)
 
{
  
//没有实例在运行
  WeatherApp appInstance = new WeatherApp();
  appInstance.StartMainGui();
 }

 
else
 
{
  
//已经有一个实例在运行
  HandleRunningInstance(instance);
 }

}

确保只有一个实例

[STAThread]
static void Main(string[] args)
{
 
bool isFirst;
 
 System.Threading.Mutex mutex
=new System.Threading.Mutex(true,"WindowAppTest",out isFirst); 
 
//这里的myApp是程序的标识,建议换成你的程序的物理路径,这样的话如果在一个操作系统中这个标志不会和其它程序冲突     
 if(!isFirst)
 
{
  MessageBox.Show(
"Exist");
  Environment.Exit(
1);//实例已经存在,退出程序
 }

 
else
 
{
  Application.Run(
new Form1());
 }

}

posted @ 2005-10-22 12:56  伊飏  阅读(827)  评论(0编辑  收藏  举报