Il codice si basa sulla creazione di un semaforo ed il relativo check della sua esistenza al caricamento dell'applicazione. L'API Win32 in gioco è la CreateSemaphore.
Routine da chiamare nel main o nell' InitHistance della vostra applicazione:
bool AmIAlreadyActive() { TCHAR* szSemName = _T("MySemaphoreApp"); // utilizzare il nome che più aggrada MyHandle= CreateSemaphore(NULL, 0, 1, szSemName); return (!MyHandle || (GetLastError() == ERROR_ALREADY_EXISTS)) ? true : false; }MyHandle è una variabile di tipo HANDLE.
Ricordarsi di chiude l'handle al termine del programma mediante
CloseHandle(MyHandle);
Nessun commento:
Posta un commento
Mi raccomando, non costringermi a censurare il tuo commento, perciò sii educato!