<br><br><div class="gmail_quote">El 17 de septiembre de 2010 02:15, Salvador Pozo <span dir="ltr"><<a href="mailto:salvador@conclase.net">salvador@conclase.net</a>></span> escribió:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
Hola de nuevo.<br>
<br>
Aquí te dejo una solución mejor, que no usa ficheros.<br>
<br>
----8<------<br>
HANDLE hMutex;<br>
char msg[120];<br>
<br>
hMutex = CreateMutex(<br>
    NULL,             // sin descriptor de seguridad<br>
    FALSE,            // sin propietario del mutex<br>
    "Aplicación X");  // nombre del objeto<br>
<br>
if (hMutex == NULL) {<br>
    sprintf(msg, "Error al crear Mutex: %d", GetLastError());<br>
    MessageBox(NULL, msg, "Aplicación X", MB_OK);<br>
    return 0;<br>
} else<br>
    if (GetLastError() == ERROR_ALREADY_EXISTS) {<br>
        MessageBox(NULL, "La aplicación ya se está ejecutando", "Aplicación X", MB_OK);<br>
        return 0;<br>
    }<br>
----8<------<br>
<br>
Y nada más. Cuando la aplicación termina, sea como sea, el mutex se destruye.<br>
<div><div></div><div class="h5"><br>
Hasta pronto.<br>
<br></div></div></blockquote><div><br>Amigo eres grande <br><br> </div></div>