Banda Ancha EU

Comunidad de usuarios
de fibra, móvil y ADSL

No puedo impedir que un archivo SCR se ejecute en otra instancia

  • [Editado]

    No puedo impedir que un archivo SCR se ejecute en otra instancia

    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)
    imagen.webp