C sharp - Como puedo validar si un .exe esta en ejecucion?

   
Vista:

Como puedo validar si un .exe esta en ejecucion?

Publicado por Adan (4 intervenciones) el 31/10/2014 02:21:13
Necesito validarlo para evitar llamarlo dos veces, saben si existe algo como esto:

if (!EnEjecucion)
{
System.Diagnostics.Process.Start("C:/PROGRAMS/Debug_Kardex_/Kardex_.exe");
}
else
{
MessageBox.Show("Aplicación en ejecución");
}
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

Como puedo validar si un .exe esta en ejecucion?

Publicado por Ricardo (1 intervención) el 31/10/2014 17:47:00
Saludos

Aquí te dejo algunas idea:

Debes listar los procesos utilizando
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
using System.Diagnostics;
public void buscar() {
            string lista="";
            Boolean existe=false;
            Process[] processes = Process.GetProcesses();
 
            foreach (Process process in processes)
            {
 
                if (process.ProcessName == tpro.Text)
                {
                    existe = true;
 
                }
                //Console.WriteLine("Process Name: {0}, Responding: {1}", process.ProcessName, process.Responding);
 
                lista=lista+ process.ProcessName + process.Responding+Environment.NewLine;
            }
            tdatos.Text = lista;
            MessageBox.Show("Resultado de proceso:   " + existe.ToString()  );

Aqui podras listar los procesos y preguntar si el proceso esta en la lista quiere decir que esta en ejecución de lo contrario no esta, o tambien puedes evaluar el process.Responding que siempre obtiene un valor true o false dependiendo si el proceso esta activo o no.

Saludos
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

Como puedo validar si un .exe esta en ejecucion?

Publicado por Adan (4 intervenciones) el 01/11/2014 01:00:16
Gracias por comentar Ricardo, me fue de mucha ayuda tu ejemplo, mi código quedo de la siguiente manera.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Process[] ProcesosEnEjecucion = Process.GetProcesses();
Boolean EnEjecucion = false;
 
foreach (Process Proceso in ProcesosEnEjecucion)
{
 if (Proceso.ProcessName == "Kardex_")
{
EnEjecucion = true;
break;
}
}
 
if (EnEjecucion == false)
{
System.Diagnostics.Process.Start("C:/PROGRAMS/Debug_Kardex_/Kardex_.exe");
}
else
MessageBox.Show("Aplicación en ejecución");


Saludos.
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