Instancia simple de una Aplicación

21/06/2004 - 13:53 por erseco | Informe spam
Hola, estoy desarrollando una aplicación y me gustaría que esta solo
se pudiera abrir una vez, puesto que si se abre mas veces podria dar
lugar a errores de sincronización (es una aplicación que hace de
servidor)

el problema está en que actualmente lo hago con process (leo el nombre
de los procesos y veo si hay alguno con el mismo nombre que el mio, si
es así se cierra la aplicación), el problema está que en windows
2003 da error si ejecutas la aplicación como un usuario avanzado,
supongo que no permitirán leer los procesos nada mas que al
administrador, pero tampoco voy a ejecutar la aplicación con permisos
de admnistrador, pues sería un grave fallo de seguridad

la cuestión es que quiero saber si la aplicación ya ha sido abierta
previamente sin necesidad de usar process, o alguna solución para que
al leer procesos en windows 2003 no de error

gracias por la ayuda
 

Leer las respuestas

#1 Tristan
21/06/2004 - 18:00 | Informe spam
Para forzar una instancia única de tu aplicación, puedes
utilizar un Mutex con nombre.

Crea un método Main en la clase de tu formulario
principal con este código:


Public Shared Sub Main()
Dim mutex1 As New Mutex(False,
Application.ProductName & Application.ProductVersion)
If mutex1.WaitOne(0, False) Then
Application.Run(New Form1())
End If
End Sub

Preguntas similares