Quick Tips: Permitindo apenas uma instância da aplicação

 

Neste quick veremos como impedir que sejam abertas mais de uma instância de nossa aplicação.

 

Crie uma nova aplicação WindowsForms e adicione o seguinte código na classe Program.cs, no método main, de forma que ele fique assim:

 

static void Main()

{

 

    //Recupera todos os processos abertos com o nome do processo atual

    Process[] RunningProcesses = Process.GetProcessesByName(Process.GetCurrentProcess().ProcessName);

 

    //Verifica se só existe uma intância aberta

    //se for verdadeiro é porque esta é a primeira intância

    //então inicia a aplicação e instancia o formulário

    if (RunningProcesses.Count() == 1)

        Application.Run(new Form1());

    //senão exibe menagem indicando que já existe outra instância

    //mata o processo atual

    else

    {

        MessageBox.Show("Já existe outra instância desta aplicação.");

        Process.GetCurrentProcess().Kill();

    }      

}

 

 

 

É isso aí pessoal, vou ficando por aqui.

Fiquem a vontade para criticar, tirar dúvidas e sugerir novos temas.
Abraço.

Ricardo Coelho