Foros del Web » Programación para mayores de 30 ;) » .NET »

Prevenir el inicio múltiple de una aplicación

Estas en el tema de Prevenir el inicio múltiple de una aplicación en el foro de .NET en Foros del Web. Hola a tod@s! A lo mejor la pregunta es un poco básica pero la verdad es que no sé como hacerlo, cómo puedo conseguir que ...
  #1 (permalink)  
Antiguo 04/02/2005, 06:39
 
Fecha de Ingreso: marzo-2004
Ubicación: Valencia
Mensajes: 367
Antigüedad: 20 años, 2 meses
Puntos: 1
Prevenir el inicio múltiple de una aplicación

Hola a tod@s!
A lo mejor la pregunta es un poco básica pero la verdad es que no sé como hacerlo, cómo puedo conseguir que sólo haya una instancia abierta de mi aplicación? vamos, que sólo pueda haber una abierta.

Saludos y gracias
  #2 (permalink)  
Antiguo 04/02/2005, 09:34
 
Fecha de Ingreso: mayo-2004
Ubicación: Guadalajara, Jalisco
Mensajes: 47
Antigüedad: 20 años
Puntos: 0
Tal vez esto te pueda ayudar....


Private Shared Function PrevInstance() As Boolean
If UBound(Diagnostics.Process.GetProcessesByName(Diag nostics.Process.GetCurrentProcess.ProcessName)) > 0 Then
Return True
Else
Return False
End If
End Function
__________________
Si puedes pensarlo, puedes hacerlo.
  #3 (permalink)  
Antiguo 04/02/2005, 09:38
 
Fecha de Ingreso: diciembre-2004
Mensajes: 130
Antigüedad: 19 años, 5 meses
Puntos: 0
Singleton

La solución a este clásico problema lo da el patrón Singleton ... te mando un link con la implementación de esta patrón en VB.NET con formularios MDI.

http://www.mundoprogramacion.com/col...ulariosMDI.htm

Saludos cordiales.
__________________
langdotnet
  #4 (permalink)  
Antiguo 04/02/2005, 15:09
 
Fecha de Ingreso: marzo-2004
Ubicación: Valencia
Mensajes: 367
Antigüedad: 20 años, 2 meses
Puntos: 1
Cómo mi aplicación es de un sólo formulario, no es mdi, he intentado utilizar el código de rcorichard, poniendo lo siguiente:

Código:
    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load

        If UBound(Diagnostics.Process.GetProcessesByName(Diagnostics.Process.GetCurrentProcess.ProcessName)) > 0 Then
            Application.Exit()
        End If

    End Sub
Y lo "gracioso" es que sí que entra en el Application.Exit() pero no termina la ejecución de programa!!! ?¿?¿?¿? por que? no se puede usar en el evento load?

Gracias y saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:32.