How do I restrict my application to one instance? 
http://www.c-sharpcorner.com/FAQ/Create1InstanceAppSC.asp

解决方案 »

  1.   


    if(!OneInstance.IsFirst("file"))///这里是你的程序名,判断程序是否已经启动
    {
    MessageBox.Show ("你已经启动管理系统了!","你还想干什么?");
    return;
    }/// <summary> 
    /// 用来判断一个指定的程序是否正在运行 
    /// </summary> 
    /// <param name="appId">程序名称,长一点比较好,防止有重复</param> 
    /// <returns>如果程序是第一次运行返回True,否则返回False</returns> 
    public static bool IsFirst(string appId) 

    bool ret=false; 
    if(OpenMutex(0x1F0001,0,appId)==IntPtr.Zero) 

    CreateMutex(IntPtr.Zero,0,appId); 
    ret=true; 

    return ret; 
    }  [DllImport("Kernel32.dll",CharSet=CharSet.Auto)] 
    private static extern IntPtr OpenMutex( 
    uint dwDesiredAccess,  // access 
    int bInheritHandle,    // inheritance option 
    string lpName          // object name 
    );  [DllImport("Kernel32.dll",CharSet=CharSet.Auto)] 
    private static extern IntPtr CreateMutex( 
    IntPtr lpMutexAttributes,  // SD 
    int bInitialOwner,                       // initial owner 
    string lpName                            // object name 
    );
      

  2.   

    1.加系统排斥变量
    2.用消息+api