Manipular el acto de abrir varias veces un programa

Controlar cuando se abre 2 o más veces el mismo programa

 

Fecha: 29/Jul/2005 (25/07/05)
Autor: Santiago Castro bryant@montevideo.com.uy

 


¿Nunca te fijaste que determinados programas (MS-Word, FrontPage, MSN Messenger, RSSReader, entre otros) cuando los abres por segunda vez, te aparece la ventana del programa o te aparece un cartel diciendo que el programa está siendo ejecutado?

Bueno..., este artículo te enseña a, que cuando abrís el programa, darte cuenta si ya hay una instancia del programa abierta.
En Visual Basic 6.0 se hacia mediante la Propiedad booleana "PrevInstance" del objeto App.

Con el siguiente código creamos una función que se fija si hay mas de una instancia de nuestro programa:

Function PrevInstance() As Boolean
    If UBound(Diagnostics.Process.GetProcessesByName(Diagnostics.Process.GetCurrentProcess.ProcessName)) > 0 Then
        Return True
    Else
        Return False
    End If
End Function

Para ejecutar esta función, la llamamos desde el evento Load del Formulario (Suponiendo que el formulario se llama Form1):

Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
    If PrevInstance() = True Then
        'MsgBox("El programa ya está siendo ejecutado", MsgBoxStyle.Information)
        'End
        ' O también, puedes poner que el programa gane el foco cuando se abre por segunda vez
    End If
End Sub

 

Bibliografía

Ayuda de Microsoft Visual Studio 2003 Enterprise Architect.
 


Espacios de nombres usados en el código de este artículo:

 


Fichero con el código de ejemplo: bryant1410_MAAVVPNET.zip - Tamaño 7 KB


ir al índice