Criando aplicações windows singleInstance
Aplicações singleInstance são aplicações que podem ser rodadas uma única vez, o usuário não pode abrir diversas instancias da aplicação, rodando várias vezes o executável.
O VB.NET, através dos recursos do MY, implementa facilmente aplicações singleInstance. Basta nas propriedades do projeto marcarmos a checkbox solicitando isso e ele gera o código para nós.
No C#, porém, não temos o recurso do My, consequentemente precisamos nós mesmos programar isso.
Para fazer isso devemos utilizar um Mutex. Um Mutex é um objeto do sistema operacional que permite criarmos uma sinalização entre nossas aplicações. Assim sendo, a primeira instância de nossa aplicação abre um Mutex e as instâncias seguintes, vendo que o Mutex já existe, não se iniciam.
Devemos fazer isso na Main. Veja:
static void Main()
{
Mutex mu = null;
try
{
mu = Mutex.OpenExisting("RUNMEONCE");
}
catch (WaitHandleCannotBeOpenedException)
{
}
if (mu == null)
{
mu = new Mutex(true, "RUNMEONCE");
}
else
{
mu.Close();
return;
}
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
C# - Somente uma instância do aplicativo
Procurar neste site . . .
Tempo
Categoria
- .net (22)
- Access (1)
- Ajax (1)
- C# (1)
- Componentes (1)
- Delphi (5)
- Eventos (1)
- Firebird (1)
- Firewall (1)
- Handheld Basic (2)
- hb++ (2)
- Internet Explorer (1)
- Java (2)
- Linux (3)
- Livros (3)
- Microsoft (1)
- Mono (1)
- Navegadores (1)
- NHibernate (2)
- Palm (2)
- PHP (3)
- Por dentro (5)
- Rave (1)
- Redes (1)
- Ruby (6)
- Segurança (1)
- SQL Server (1)
- Tecnologia (2)
- Turbo Delphi (3)
- Utilidade Publica (1)
- Web (2)
- Windows (6)
- Windows Server 2003 (1)
- XML (1)