Impedir que programa abra 2 vezes

Delphi

20/04/2007

Olá,

Como faço para não permitir que o usuario abra um programa que já está aberto? Ex: o programa está minimizado e o usuario tenta abri-lo novamente. Obrigado.

Luiz


L_carlos

L_carlos

Curtidas 0

Respostas

Briciosm

Briciosm

20/04/2007

Vá no project / view source.


Veja exemplo abaixo:

begin
HprevHist := FindWindow(Nil, PChar(´admissao_hcaa´));
Application.Title := ´admissao_hcaa´;
//se não foi criado
if HPrevhist = 0 then
begin
Application.Initialize;
Application.CreateForm(Tf_adm_entrada, f_adm_entrada);
Application.Run;
end
else
begin
//não será criado um novo sistema apenas será chamado o que já existe
SetForegroundWindow (HprevHist);
end;
end.


GOSTEI 0
L_carlos

L_carlos

20/04/2007

Olá Bricio,

Está dando erro na primeira linha do codigo - DECLARATION EXPECTED BUT IDENTIFIER HPREVHIST FOUND. Tem que fazer mais algo alem do que vc informou? Obrigado.

Luiz


GOSTEI 0
Marco Salles

Marco Salles

20/04/2007

outra saida é [b:a1f88c2176]CreateMutex[/b:a1f88c2176] .

declara na secção usse do seu Arquivo Dpr as Units Forms, Windows, Dialogs

Assim ô :

program NomeDoProgrma; uses Forms, // Inclua ************* Windows, // Inclua ************* Dialogs // Inclua ************* Principal in ´Principal.pas´ , { Mais alguns formulários... } Login in ´..\comum\Login.pas´ ; {$R *.RES} begin CreateMutex(nil, True, ´XyZzWw´); if GetLastError = ERROR_ALREADY_EXISTS then Exit; // bla bla bal.... Application.Run; end.



GOSTEI 0
L_carlos

L_carlos

20/04/2007

Valeu MARCO, Funcionou.

Luiz


GOSTEI 0
POSTAR