Visual Basic.NET - Ejecutar 1 sola vez

 
Vista:

Ejecutar 1 sola vez

Publicado por Gustavo (4 intervenciones) el 14/01/2010 08:53:42
Slaudos utilizo el siguiente metodo para correr una aplicación:
System.Diagnostics.Process.Start("C:\BurnCD.exe")

Este codigo esta en el evento clic de un botón, pero al volverle darle clic me gustaria que no se abriera el programa, es decir detectar que ese proceso (BurnCD.exe) ya esta abierto y no permitir que se abra más de una vez.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

RE:Ejecutar 1 sola vez

Publicado por kdlc (69 intervenciones) el 19/01/2010 23:58:09
Usas la misma clase (System.Diagnostics.Process) para obtener un listado de los programas ejecutados en memoria y chequeas si tu programa (BURNCD.EXE) se encuentra en la lista ...

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If ChecarSiProgramaEstaEjecutado("BurnCD.exe") = True Then
MsgBox("proceso BurnCD.exe esta corriendo")
Else
System.Diagnostics.Process.Start("C:\BurnCD.exe")
End If
End Sub

Public Function ChecarSiProgramaEstaEjecutado(ByVal name As String) As Boolean
Dim sResult As Boolean = False
For Each clsProcess As Process In Process.GetProcesses
Debug.Print(clsProcess.ProcessName.ToString)
Dim sValue As String = clsProcess.ProcessName & ".exe"
If sValue.ToUpper = name.ToUpper Then
sResult = True
Exit For
End If
Next
Return sResult
End Function

Suerte!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Dar foco a la aplicación?

Publicado por Nicolás (27 intervenciones) el 16/06/2010 18:09:53
Saludos:
Tengo una duda sobre este tema. Logré detectar si el proceso está activo en la sesión actual (en un servidor de aplicaciones puede estar mas de 1 véz para distintos usuarios) pero quisiera que al encontrarlo devuelva el foco a ese proceso (que traiga la pantalla adelante, una especie de "pasar a" del administrador de tareas de windows). En el ejemplo de kdlc se limita a mostrar una caja de texto MsgBox("proceso BurnCD.exe esta corriendo") .
Esto se puede hacer? Podrían darme un ejemplo?
Desde ya, muchas gracias.
NMB
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar