Ciao a tutti,
nel caso a qualche sviluppatore di applicativi C++ interessasse la risposta alla domanda "come faccio a fare in modo che il mio programma non possa essere aperto piu volte contemporaneamente sullo stesso pc?" può vedere qui sotto un modo (ce ne sono altri):
C++ Programming
#include <windows.h>
HANDLE mtx;
void main()
{
mtx = OpenMutex(MUTEX_ALL_ACCESS, false, "MioMutex");
if (mtx)
{
MessageBox(NULL,"Programma già caricato!","",MB_OK);
return;
}
mtx = CreateMutex (NULL, true, "MioMutex");
while (!GetAsyncKeyState(VK_ESCAPE))
{
Sleep(200);
}
}
ovviamente il ciclo finale con il GetAsyncKeyState non serve, è li solo per simulare che il programma sta girando e fa qualcosa, intanto che è aperto lanciate di nuovo l'eseguibile e vedrete che vi darà errore dicendo che è già caricato e uscirà, lasciando di fatto un solo programma running