skidini
🧩 Syntax:
using System;
using System.Diagnostics;
using System.Linq;
using System.Threading;
namespace ProcessManager
{
class Program
{
static void Main(string[] args)
{
// Nome do processo que você quer monitorar
string processoNome = "chrome"; // Altere aqui para o nome do processo desejado
// Inicia o monitoramento do processo
Thread monitoramentoThread = new Thread(() => MonitorarProcesso(processoNome));
monitoramentoThread.Start();
// Exemplo de simulação de tarefa da aplicação principal
Console.WriteLine("Aplicação Principal está em execução...");
Console.WriteLine("Pressione Enter para encerrar.");
Console.ReadLine();
// A aplicação foi encerrada, então o processo monitorado também será encerrado
EncerraProcesso(processoNome);
}
// Função para monitorar se o processo está em execução
static void MonitorarProcesso(string nomeProcesso)
{
while (true)
{
// Obtém todos os processos com o nome fornecido
var processos = Process.GetProcessesByName(nomeProcesso);
// Verifica se o processo está em execução
if (processos.Length == 0)
{
Console.WriteLine($"Processo {nomeProcesso} não está mais em execução.");
break;
}
// Aguarda 1 segundo antes de verificar novamente
Thread.Sleep(1000);
}
}
// Função para encerrar o processo monitorado
static void EncerraProcesso(string nomeProcesso)
{
try
{
// Obtém todos os processos com o nome fornecido
var processos = Process.GetProcessesByName(nomeProcesso);
// Encerra todos os processos encontrados
foreach (var processo in processos)
{
Console.WriteLine($"Encerrando o processo: {processo.ProcessName}");
processo.Kill();
}
}
catch (Exception ex)
{
Console.WriteLine($"Erro ao tentar encerrar o processo: {ex.Message}");
}
}
}
}