我做了一个WINFROM程序,aa.exe 双击这个程序 程序启动。再双击这个程序 程序在次打开一个窗口
我想让这个程序双击启动之后 在双击这个程序让他展示原来打开的也就是说如何控制这个程序只启动一个窗口。

解决方案 »

  1.   

    方案一:
    //判断是否已经存在一个exe   
      是要写在main函数里面的   
      [STAThread]   
      static   void   Main()     
      {   
      bool   createdNew;   
      Mutex   m   =   new   Mutex(true,   "yourexe",   out   createdNew);   
      if   (!   createdNew)   
      {   
      MessageBox.Show("Only   one   exe   is   allowed   at   a   time.");   
      return;   
      }   
      Application.Run(new   Start());   
      GC.KeepAlive(m);   
      }   
        
      上面的要添加using   System.Threading;   
      Mutex   class是用于进程同步的
    方案二:
    using   System.Diagnostics;   
        
      ///   <summary>   
      ///   应用程序的主入口点。   
      ///   </summary>   
      [STAThread]   
      static   void   Main()     
      {   
      //   防止多次执行   
      Process[]   processes   =   Process.GetProcessesByName("RCL");   
      if   (processes.Length   >=   2   )           
      {   
      MessageBox.Show("程序已经执行!","提醒",MessageBoxButtons.OK,MessageBoxIcon.Information);   
      return;   
      }   
      else   
      Application.Run(new   frmMain());   
      }