即同一个进程同时只能运行一个

解决方案 »

  1.   

    public static Process RunningInstance()
    {
    Process current = Process.GetCurrentProcess();
    Process[] processes = Process.GetProcessesByName (current.ProcessName); //遍历正在有相同名字运行的例程
    foreach (Process process in processes)
    {
    //忽略现有的例程
    if (process.Id != current.Id)
    {
    return process;
    }
    } //没有其它的例程,返回Null
    return null;
    }static void Main() 
    {
    try
    {
    Process proc = RunningInstance();
    if(proc ==null)
    Application.Run(new Frm_Main());
    else
    {
    //实例已经存在
    Application.Exit();
    }
    }
    catch
    {
    Application.Exit();
    }
    }
      

  2.   

    如是本机同样的程序只执行一遍,则用如下代码bool flag=false;System.Threading.Mutex mutex=new System.Threading.Mutex(true,"YourMutexName",out flag);if ( !flag )
    {
    Application.Exit();
    return;
    }
      

  3.   

    楼上的方法就可以了。http://Vip.ghry.cn/Qb/vip.htm?QQ=269269&id=400030888011
    喜讯,腾迅为迎接到来的五一劳动节,现在开放六位 QQ 号码免费申请,数量有限,送完即止
      

  4.   

    这里要是在运行后修改进程的名字再运行,iamknight的这种方法好像就不可行了
      

  5.   

    基于.Net平台应用程序唯一运行实例实现,
    我讲了三种方法,提供完整代码,同时分析他们的优缺点。
    http://blog.csdn.net/zhzuo/archive/2006/06/30/857405.aspx
    http://blog.csdn.net/zhzuo/archive/2006/07/04/874745.aspx