Fórum Limitar execução #322723
01/06/2006
0
eu estava querendo travar o meu exe para abrir somente 2 vezes... tem como ? eu consegui um codigo na internet pronto.... só que eu não entendi nada... a unica coisa que sei foi que ele so deixa abrir 1 vez e nao deixa mais nada... eu queria limitar a quantidade de acessos simultaneos... alguem poderia me ajudar?
vejam o codigo que eu coloquei no meu projeto.
var Handle: THandle; begin Handle := FindWindow(´TfrmPrincipal´, nil); if Handle <> 0 then begin Application.MessageBox(´Por Segurança, não é permitido abrir o mesmo programa duas vezes. A Execução ´ + ´anterior será ativada.´, ´Segurança do Sistema´, MB_OK); if not IsWindowVisible(Handle) then ShowWindow(Handle, SW_RESTORE); SetForegroundWindow(Handle); Exit; end; Application.Initialize; FrmLogin := TfrmLogin.Create(Application); FrmLogin.ShowModal; Application.Title := ´Digidocs´; Application.Run;
Fernando_cunha
Curtir tópico
+ 0Post mais votado
02/06/2006
No projeto Faça :
program Project1;
uses
Forms,
Windows,Dialogs,
Unit1 in ´Unit1.pas´ ;
{$R *.res}
var
AbrirCopia:Boolean;
begin
try
AbrirCopia:=False;
CreateMutex(nil, True, ´COPIA´);
if not (GetLastError = ERROR_ALREADY_EXISTS) then
abrirCopia:=True
else
begin
CreateMutex(nil, True, ´COPIA2´);
if not (GetLastError = ERROR_ALREADY_EXISTS) then
abrirCopia:=True
else
begin
CreateMutex(nil, True, ´COPIA3´);
if not (GetLastError = ERROR_ALREADY_EXISTS) then
AbrirCopia:=True
end;
end;
finally
begin
if AbrirCopia Then
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end
else
begin
showmessage(´Mensagem qualquer´);
application.Terminate;
end;
end;
end;
end.Marco Salles
Gostei + 1
Mais Posts
01/06/2006
Beppe
Gostei + 0
02/06/2006
Aroldo Zanela
Eu não entendi claramente o que você deseja. No caso do código acima, serve apenas para verificar se já existe uma instância em execução (processo) e ainda assim, seria mais eficiente o uso de Mutex. Minha dúvida é: - Você precisa fazer uma programa demo que possa ser executado apenas duas vezes?
Gostei + 0
02/06/2006
Fernando_cunha
eu queria que ele verifica se ja esta aberto, quantas vezes esta aberta... exemplo ( 3vezes ) ... eu queria abrir o exe 3 vezes, se abrir de novo ai sim ele da o erro que não posso abrir
Gostei + 0
02/06/2006
Paullsoftware
todas as vezes que seu sistema inicializar ele deve verificar esse arquivo e aplicar as proteções necessárias... :wink:
Gostei + 0
02/06/2006
Cristiano Alves
[]s
Gostei + 0
02/06/2006
Fernando_cunha
obrigado pessoal
vlw
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)