Como Evitar a Execução Dupla de um Programa no Visual Basic
Para impedir que um usuário abra o mesmo programa mais de uma vez simultaneamente, você pode utilizar a propriedade PrevInstance do objeto App no Visual Basic.
O Que é App.PrevInstance?
O objeto App contém informações sobre a aplicação, incluindo a propriedade PrevInstance, que retorna:
-
True→ Se já houver outra instância do programa em execução. -
False→ Se for a única instância ativa.
Código para Bloquear Execuções Duplicadas
Adicione o seguinte código no evento Load do formulário principal ou na Sub Main do projeto:
If App.PrevInstance Then
MsgBox "Esta aplicação já está sendo executada em outra janela.", vbExclamation, "Aviso"
End
End If
Explicação
-
If App.PrevInstance Then: Verifica se já existe uma instância ativa do programa. -
MsgBox: Exibe um aviso informando ao usuário. -
End: Finaliza a execução da segunda instância.
Melhorando a Experiência do Usuário
Caso queira destacar a janela já aberta em vez de apenas exibir uma mensagem, pode-se usar APIs do Windows, como FindWindow e SetForegroundWindow, para trazer a primeira instância para frente.