Programa ya en ejecucion

19/02/2006 - 06:44 por Fernando Alonso | Informe spam
Me podrian decir como le hago para que un programa no se ejecute 2 o mas
veces ala vez, es decir que al querer abrirlo muestre un mensaje que ya esta
en ejecucion.

gracias...
 

Leer las respuestas

#1 Jorge Serrano [MVP VB]
19/02/2006 - 09:04 | Informe spam
Hola Fernando,

el siguiente ejemplo está sacado de una contribución a los foros en inglés.
Hay más métodos para solucionar lo que indicas. Este es uno de ellos.

Espero que te ayude.

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
If CountOfApplicationInstances() > 1 Then MessageBox.Show("Programa
ya en ejecución") : End
End Sub

' Return a count of the running instances of the
' current application. This can be useful if you want
' to control the number of instances that can run
' at a time.
Public Function CountOfApplicationInstances() As Integer
Dim counter As Integer
' Get a handle to the current proces
Dim currentProcess As Process = Process.GetCurrentProcess()
' Get an array of all instances of the application
Dim Instances() As Process =
Process.GetProcessesByName(currentProcess.ProcessName)
' Iterate all processes with the same name
Dim processTmp As Process
For Each processTmp In Instances
' Check the name to see that it is running from the same path
Dim strPath As String =
System.Reflection.Assembly.GetExecutingAssembly.Location
' Fixup paths
Dim strFixedPath As String = strPath.Replace("/", "\")
' See if we have a match
If strFixedPath = currentProcess.MainModule.FileName Then
counter += 1
End If
Next
Return counter
End Function

Un saludo.

Jorge Serrano Pérez
Microsoft MVP VB.NET
PortalVB.com
http://www.portalvb.com/
Weblog de Jorge Serrano
http://weblogs.golemproject.com/jorge/


"Fernando Alonso" wrote:

Me podrian decir como le hago para que un programa no se ejecute 2 o mas
veces ala vez, es decir que al querer abrirlo muestre un mensaje que ya esta
en ejecucion.

gracias...

Preguntas similares