15 мая "Исходники.РУ" отмечают 20-летие присутствия в сети!
Поздравляем всех причастных и неравнодушных с юбилеем сайта!
И огромное спасибо всем, кто был с нами все эти годы!

Главная Информер Журнал Форум Wiki DRKB Discuz!ML Помощь проекту


Как проследить чтобы только одна копия приложения работала в данный момент (Mutex)

BOOL WeAreAlone (LPSTR szName)
{
   HANDLE hMutex = CreateMutex (NULL, TRUE, szName);
   if (GetLastError() == ERROR_ALREADY_EXISTS)
   {
      CloseHandle(hMutex);
      return FALSE;
   }
   return TRUE;
}

И в начале WinMain или main -

if (WeAreAlone ("Some_Unique_Name_Or_Other"))
{
   // Proceed
}
else
{
   MessageBox (NULL,"Error","Error: app already running!",MB_OK|MB_ICONERROR);
   exit(1);
}