Skip Navigation Links
Novas Tecnologias
Ferramentas Adicionais
Ferramentas Adicionais


Dica No :
525
Assunto : VB.NET
Titulo: Impedir que 2 cópias da aplicação sejam executadas

Gostou do texto ? Vote e dê sua opinião! Pontuação atual :

Translate this page now :






Adicione aos Favoritos!
BlogBlogs Rec6 Linkk Ueba Technorati Delicious DiggIt! StumbleUpon



No VB 6 utilizamos a instrução APP.PrevInstance para sabermos se já havia uma cópia da aplicação sendo executada e desta forma impediamos que um usuário executasse a mesma aplicação duas vezes ao mesmo tempo.

No VB.NET não temos o objeto APP. Para sabermos se existe ou não uma outra cópia da aplicação rodando temos que fazer uso do objeto Process (Processo - cada aplicação é um processo).

Veja um exemplo :

Dim procs() As Process = Process.GetProcessesByName("MinhaApp")
If procs.Length > 1 Then
MsgBox("Saindo...")
Me.Close()
End If

Uma forma de tornar essa rotina um pouco mais genérica é obter o nome do processo da nossa aplicação dinamicamente, veja :

Dim procs() As Process = Process.GetProcessesByName(Process.GetCurrentProcess.ProcessName)
If procs.Length > 1 Then
MsgBox("Saindo...")
Me.Close()
End If

Porém essa rotina só funcionará para processos que tenham nomes pequenos. Não funcionará caso o nome do processo tenha mais de 15 letras, por causa de uma limitação do ProcessName.

Para contornar esse problema, podemos ao invés de obter o processName obter o nome do arquivo executável e excluir a extensão. Veja um exemplo de uma função para isso :

Function AppIsAlreadyRunning() As Boolean

Dim moduleName As String = Process.GetCurrentProcess.MainModule.ModuleName

Dim procName As String = System.IO.Path.GetFileNameWithoutExtension _
(moduleName)

If Process.GetProcessesByName(procName).Length > 1 Then
Return True
End If
End Function



Nome :
E-mail:
Comentarios :
 
 
Os Últimos Comentários
Nenhum comentário foi realizado ainda. Seja o primeiro !
Dicas
Dica do Dia
Receba Dicas Por Email
E-mail :  
 


 (help)
Aceito receber informativos do devASPNet, informações de eventos e treinamentos

Veja Quais Informativos Você Receberá

Pesquisar Dicas
Pesquisar Artigos, Dicas e Noticias

Banco de Dados
Algumas Entrevistas
Links Importantes

Búfalo Informática, Treinamento e Consultoria
R. Alvaro Alvim, 37/920 Centro - Cinelândia - Rio de Janeiro Cep: 20031-010
Tel : (21) 2262-1368 (21) 9240-5134 E-mail : Contato@bufaloinfo.com.br