26. FAQ o Win API

Q> Как проследить чтобы только одна копия приложения работала в данный момент?
A>
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);
}

2000(c) DM

Электронные Книги по компьютерным программам
На правах рекламы:
Логин
Пароль
Запомнить меня