Simular App.PrevInstance
(sin usar APIs)
 

Fecha: 19/Mar/2004 (20/Mar/2004)
Autor: Anibal Svarcas. asvarcas@montevideo.com.uy

 


En este código se utiliza la clase Process que nos sirve para interactuar con los procesos activos del sistema entre otras cosas. En este caso vamos a usar esta clase para verificar si al momento de ejecutar nuestra aplicación ya existe una instancia en memoria de la misma, o sea, si nuestra aplicación ya se está ejecutando, si no se esta ejecutando, ejecutamos una nueva instancia; y si ya lo estuviera cerramos la instancia que pretendíamos ejecutar. De esta manera evitamos que nuestra aplicación se ejecute más de una vez al mismo tiempo.

Este es el código para Visual Basic .Net:

'Agregar todo el código en el formulario principal.
Shared Sub Main() 'Usamos la clase Process para sacar información de procesos en ejecución. 'Definimos una matríz de procesos
Dim MisProcesos() As Process 'Asignamos a la matríz todos los procesos en ejecución 'que tengan por nombre el de nuestra aplicación. MisProcesos = Process.GetProcessesByName(Application.ProductName.ToString) 'MisProcesos.Length nunca es cero, porque 'este mismo proceso cuenta; 'por eso miramos si solo hay una coincidencia.
If MisProcesos.Length = 1 Then 'Ejecutamos nuestra aplicación Application.Run(New Form1()) Else 'Hay más de un proceso ejecutandose 'MessageBox.Show("Ya se está ejecutando una instancia") Application.Exit() End If End Sub


ir al índice