SABER SE EXE ESTA RODANDO

MKING 28/03/2011 08:42:24
#369392
Bom dia, estou com um problema em uma aplicação C# windows forms, aonde a aplicação A depende da aplicação B, minha dúvida é, como faço em C# para saber se na aplicação A se a aplicação B.exe está rodando ou não? Alguém teria alguma dica?

Obrigado
ESLEYSANCHES 28/03/2011 08:57:22
#369395
Amigo, faça o seguinte, no LOAD do seu projeto vc precisa verificar se o B.exe está sendo executado certo ??
Se ele estiver continua a carregar o programa. Caso contrário interrompe o fluxo do programa certo ??
Veja se o exemplo abaixo te ajuda:

System.Diagnostics.Process[] processos;
processos = System.Diagnostics.Process.GetProcesses();
dataGridView1.Rows.Clear();

// Faz um FOR (busca) em todos os processos
for (int i = 0; i < processos.Length; i++)
{
// Verifica se um processo em especifico está sendo executado
if (processos[i].ProcessName == [Ô]firefox[Ô])
{
MessageBox.Show([Ô]Processo encontrado. APP será iniciado normalmente !![Ô]);
// AQUI VOCE COLOCA O FORM QUE DEVERA SER ABERTO SE O B.exe FOR ENCONTRADO
return;
}
}
// Caso o processo não seja localizado exibe uma msg e finaliza a aplicação
MessageBox.Show([Ô]Processo segundário para executar esse APP não foi encontrado, o programa será finalizado !![Ô]);
Application.Exit();


Em anexo existe um exemplo que eu fiz de processos, veja tbm se te ajuda !!
Abraços !!!
JONATHANSTECKER 28/03/2011 09:09:47
#369400
Resposta escolhida
Eu só buscaria o aplicativo pelo nome ao invés de efetuar um For.
Esley, adaptei o seu exemplo usando o GetProcessesByName ok?

            // Verifica se um processo em especifico está sendo executado
if (System.Diagnostics.Process.GetProcessesByName([Ô]B[Ô]).Length == 1)
{
MessageBox.Show([Ô]Processo encontrado. APP será iniciado normalmente !![Ô]);
// AQUI VOCE COLOCA O FORM QUE DEVERA SER ABERTO SE O B.exe FOR ENCONTRADO
}
else
{
// Caso o processo não seja localizado exibe uma msg e finaliza a aplicação
MessageBox.Show([Ô]Processo segundário para executar esse APP não foi encontrado, o programa será finalizado !![Ô]);
Application.Exit();
}


[txt-color=#e80000]Alteração.:[/txt-color] Erro de digitação.
MKING 28/03/2011 09:37:18
#369405
Pessoal, é isso mesmo, as duas respostas me ajudaram muito, agora só vou pesquisar como Startar a aplicação B quando não estiver iniciada, já já fecho o tópico e pontuo.

Muito Obrigado mesmo!
JONATHANSTECKER 28/03/2011 09:46:38
#369408
Process.Start([Ô]B.exe[Ô])
Tópico encerrado , respostas não são mais permitidas