Compruebe que la aplicación no se ejecuta en otra cuenta de usuario de c #

votos
0

Estoy tratando de restringir mi solicitud de tener varias instancias a nivel de máquina, es decir, un equipo tendrá múltiples usuarios que inician sesión en ella y no se requiere esta aplicación para tener sólo una instancia por razones de rendimiento. Así que si un usuario inicia la aplicación, el usuario B sólo debe recibir un mensaje de que esta aplicación ya se está ejecutando en la cuenta del usuario A. Ahora, antes de empezar me escolarización en los procesos, Ya he intentado eso, y no funciona porque para mi aplicación para comprobar si un proceso similar está en marcha, que necesita para iniciar el proceso (la aplicación), en este caso, la aplicación Nunca se iniciará.

Estoy usando este control para restringir varias instancias, y funciona muy bien pero sólo funciona a nivel de usuario.

Microsoft.VisualBasic.ApplicationServices

public class SingleInstanceApplication : WindowsFormsApplicationBase
{
    private SingleInstanceApplication()
    {
        base.IsSingleInstance = true;
    }

    public static void Run(Form f, StartupNextInstanceEventHandler startupHandler)
    {
        SingleInstanceApplication app = new SingleInstanceApplication();
        app.MainForm = f;
        app.StartupNextInstance += startupHandler;
        app.Run(Environment.GetCommandLineArgs());
    }
}

Cualquier ayuda o consejo será muy apreciada ...

Publicado el 07/11/2018 a las 22:35
fuente por usuario
En otros idiomas...                            


1 respuestas

votos
1

¿Cómo son los usuarios acceden a la aplicación? Se puede crear archivo por lotes que verifica el proceso, si se está ejecutando el script simplemente no va a iniciar la aplicación. No estoy seguro si se quiere resolver este programáticamente dentro de su aplicación o por otros medios. Pero si usted no quiere una segunda instancia de dicha aplicación que se ejecuta la mejor opción sería fuera de su aplicación, como un archivo por lotes.

También hay esto: el usuario cruz C # mutex . Donde trabajo tenemos indicadores establecidos en las tablas SQL específicas que impiden que varios usuarios editen registros al mismo tiempo. También se puede crear un archivo de bloqueo oculta cuando un usuario se conecta y que retiran dichos archivos una vez que el usuario cierra la sesión.

Respondida el 07/11/2018 a las 22:54
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more