26. FAQ o Win API |
Q> How to trace that only one copy of application worked at present?
A>
BOOL WeAreAlone (LPSTR szName)
{
HANDLE hMutex = CreateMutex (NULL, TRUE, szName);
if (GetLastError () == ERROR_ALREADY_EXISTS)
{
CloseHandle (hMutex);
return FALSE;
}
return TRUE;
}
And in beginning WinMain or 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