首页 相关文章 防止一个没有窗体的WINDOWS程序的重复运行

防止一个没有窗体的WINDOWS程序的重复运行


  用互斥(Mutex),Mutex本来是多线程同步用的,防止多个线程访问同一资源而引发冲突。用CreateMutex可以创建Mutex对象,实质上是一个kernel对象。
  
  在任何Win32程序(包括GDI和Console)的启动部分加上以下代码(Console程序的main函数、MFC程序的CWinApp派生类的InitInstance成员函数、RawSDK程序的WinMain 函数):
  
  hMutex=CreateMutex(
  NULL,//nosecurityattributes
  FALSE,//initiallynotowned
  "RunOnlyOneInstance");//命名Mutex是全局对象
  //在所有的process都可以访问到
  
  if(hMutex==NULLERROR_ALREADY_EXISTS==::GetLastError())
  {
  //程序第二次或以后运行时,会得到Mutex已经创建的错误
  returnFALSE;
  }
  嘿嘿,是不是不用FindWindow优雅简洁多了? [ 查看全文 ]

2016-02-19 标签:

防止一个没有窗体的WINDOWS程序的重复运行的相关文章

手机页面
收藏网站 回到头部