zsyzsj的专栏

I am a coder,I love coding,but i love zsj most.

C#中只运行一个实例的方法

在Main函数之前添加如下代码,引入kernel32.dll里的函数:
/// <summary>
  /// 应用程序的主入口点。只运行一个实例
  /// </summary>
  [StructLayout(LayoutKind.Sequential)]  
   public   class   SECURITY_ATTRIBUTES    
  {  
   public   int   nLength;    
   public   int   lpSecurityDescriptor;    
   public   int   bInheritHandle;    
  }  
  [System.Runtime.InteropServices.DllImport("kernel32")]  
  private   static   extern   int   GetLastError();
  
  [System.Runtime.InteropServices.DllImport("kernel32")]  
  private   static   extern   IntPtr   CreateMutex(SECURITY_ATTRIBUTES  lpMutexAttributes,bool

bInitialOwner,string   lpName);  
  
  [System.Runtime.InteropServices.DllImport("kernel32")]  
  private   static   extern   int   ReleaseMutex(IntPtr   hMutex);  
  
  const   int   ERROR_ALREADY_EXISTS   =   0183;  

然后在Main函数里调用如下:
//***********只运行一个实例*********************************************
   IntPtr   hMutex;  
   hMutex = CreateMutex(null,false,"test");  
   if  ( GetLastError() != ERROR_ALREADY_EXISTS)  
   { 进行其它操作  }
   else
   {
    //退出运行。因为已经有一个实例运行了。
   } 

阅读更多
上一篇vs2003 JIT 被后安装的VC6.0修改的问题
下一篇SQL数据库操作类
想对作者说点什么? 我来说一句

C#运行一个实例

2008年11月19日 26KB 下载

c#如何只运行一个实例

2008年07月18日 5KB 下载

没有更多推荐了,返回首页

关闭
关闭