As vezes necessitamos limitar a abertura de apenas uma instância da nossa aplicação. O objetivo aqui é demonstrar como fazer isso:
Abra o fonte do seu arquivo DPR e adicione na uses as seguintes units:
uses
System, Windows,
...
E codifique como o exemplo abaixo
var
Instancia: THandle;
begin
Instancia:= CreateMutex(nil, false, 'InstanciaIniciada');
if WaitForSingleObject(Instancia, 0) = wait_Timeout then
begin
Application.MessageBox('Atenção o programa já está aberto!.','Atenção',MB_ICONINFORMATION);;
Exit;
end;
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
Nesse exemplo criamos um objeto do tipo THandle chamado instancia, em seguida instanciamos o objeto com o nome da nossa janela (InstanciaIniciada), a apartir dai verificamos se já existe uma instância rodando com WaitForSingleObject, caso exista exibimos a mensagem para o usuários e fechamos a aplicação.
sexta-feira, 19 de outubro de 2007
Dica: Permitir apenas uma instância da aplicação.
Postado por
Cristiano Martins Alves
às
17:33
Marcadores: API
Assinar:
Postar comentários (Atom)
Perfil
- Cristiano Martins Alves
- São Paulo, SP, Brazil
- Programador Delphi desde 2000, desenvolvendo aplicações Client/Server. Colunista da Revista ActiveDelphi Membro Fundador do DUG-SP ( www.dug-sp.com )
Blogs de Amigos
Exemplos
Search
Marcadores
- Actions (1)
- AJAX (1)
- API (2)
- Arquivos (1)
- ASP.NET (1)
- Blackfish SQL (1)
- Borcon (3)
- CodeGear (2)
- Datas (1)
- Datasnap (3)
- DBExpress (1)
- DBGrid (2)
- Delimitados (1)
- Delphi (1)
- Delphi2009 (3)
- DUG (1)
- ECO (1)
- Embarcadero (1)
- ExtractStrings (1)
- Firebird (1)
- Framework (1)
- Funcões (2)
- Herança Visual (1)
- IDE (1)
- Join (1)
- Lookup (1)
- POO (1)
- RAD Studio 2007 (1)
- RN's (1)
- SQL Server (1)
- StringList (2)
- Strings (2)
- TextFile (1)
- Tiburon (2)
- TypeLibrary (1)
- UML (1)
2 comentários:
valeu gente boa, me socorreu numa hora de aperto aki.
Valeu....
boa dica, achei na hora certa
dirceu henchen
www.ecocentauro.com.br
Postar um comentário