terça-feira, 20 de julho de 2010

Processos do Windows

/*
* Autor: Marcos Guedes
* Fonte: http://forum.programacaobrasil.com/-t1228.htm
*/
using System.Diagnostics;

namespace API_PB
{
/// Classe por manipular processos do Windows
public class PB_Processos
{
public PB_Processos()
{
}

/// Verifica se um processo está em execução
/// Nome do Processo (Sem a extensão)
/// Retorna true se o processo estiver em execução
public bool verificaExecutando(string nomeProcesso)
{
bool executando = false;

Process[] processos = Process.GetProcesses();
foreach (Process p in processos)
{
if (p.ProcessName.Trim().ToUpper() == nomeProcesso.Trim().ToUpper())
{
executando = true;
break;
}
}
return executando;
}

/// Finaliza um processo em execução
/// Nome do Processo (Sem a extensão)
public void finalizaProcesso(string nomeProcesso)
{
Process[] processos = Process.GetProcesses();
foreach (Process p in processos)
{
if (p.ProcessName.Trim().ToUpper() == nomeProcesso.Trim().ToUpper())
{
p.Kill();
break;
}
}
}

/// Finaliza um, ou todos, processos em execução
/// Nome do Processo (Sem a extensão)
/// True para finalizar todos, false para finalizar apenas um
public void finalizaProcesso(string nomeProcesso, bool todos)
{
if (todos)
{
Process[] processos = Process.GetProcessesByName(nomeProcesso.Trim());
foreach (Process processo in processos)
{
processo.Kill();
}
}
else
{
this.finalizaProcesso(nomeProcesso);
}
}

/// Finaliza um, ou mais, processos em execução
/// Nome do Processo (Sem a extensão)
/// Quantidade de processos a ser finalizados
public void finalizaProcesso(string nomeProcesso, int quantos)
{
for (int contador = 0; contador <>
{
this.finalizaProcesso(nomeProcesso);
}
}

/// Executa um processo em modo Síncrono (Aguarda o encerramento do mesmo para prosseguir)
/// Nome, ou caminho, do arquivo
public void executarSincrono(string nomeArquivo)
{
Process setup = new Process();
setup.StartInfo.FileName = nomeArquivo;
setup.StartInfo.UseShellExecute = false;
setup.EnableRaisingEvents = false;
setup.Start();
setup.WaitForExit();
}

/// Executa um processo em modo assíncrono (Nâo aguarda o encerramento para prosseguir)
/// Nome, ou caminho, do arquivo
public void executarAssincrono(string nomeArquivo)
{
Process setup = new Process();
setup.StartInfo.FileName = nomeArquivo;
setup.StartInfo.UseShellExecute = false;
setup.EnableRaisingEvents = false;
setup.Start();
}
}
}

Sem comentários:

Enviar um comentário