Tengo un programa en C# que ejecuto como salvapantallas (extensión .scr
) que activa la pantalla de bloqueo tras un tiempo.
La cuestión es que quiero que cuando doy al botón "desactivar temporalmente" se pare el temporizador, se minimice el programa y no se ejecute una nueva instancia del programa.
Con el archivo .exe
no tengo ningún problema y va todo como la seda, pero cuando se ejecuta en versión salvapantallas se abre otra instancia del programa y no se cierra inmediatamente como debería.
Lo he intentado de dos formas que son:
//no permitir más de una ejecución del programa forma 1:
Process[] instancias = Process.GetProcessesByName("Bloquea2");
foreach (Process proceso in instancias)
{
if (instancias.Length>1)
{
Application.Exit();
break;
}
//Forma 2:
if(Settings.Default.ejecutando==true)
{ Application.Exit(); }
Settings.Default.ejecutando = true;
Settings.Default.Save();
}
// (al salir del programa fijo Settings.Default.ejecutando en false)