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

Главная Форум Журнал 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);
}