Verificar se o programa já está aberto ! Erro
Encontrei esse código na lista, mas infelizmente acontece um erro na expressão FindWindow ... procurei e nao consegui encontrar um help sobre esse comando. Alguma sugestão ??
//abra a unit do projeto -> project -> view source
{$R *.res}
//delclare esta variavel neste ponto
VAR Handle: THandle;
//o codigo abaixo verifica se o programa está aberto
begin
Handle := FindWindow(´Form1´, nil); //aqui da um erro
if Handle <> 0 Then //já está aberto
begin
application.MessageBox(´O programa já está aberto neste terminal, verifique!!!´, ´ATENÇÃO´,
mb_ok + mb_iconError);
Exit;
end;
//abra a unit do projeto -> project -> view source
{$R *.res}
//delclare esta variavel neste ponto
VAR Handle: THandle;
//o codigo abaixo verifica se o programa está aberto
begin
Handle := FindWindow(´Form1´, nil); //aqui da um erro
if Handle <> 0 Then //já está aberto
begin
application.MessageBox(´O programa já está aberto neste terminal, verifique!!!´, ´ATENÇÃO´,
mb_ok + mb_iconError);
Exit;
end;
Ce
Curtidas 0
Respostas
Wagner
01/01/2004
Coloque um Button no Form e altere o evento OnClick
procedure TForm1.Button1Click(Sender: TObject);
begin
if FindWindow(´TAppBuilder´, nil) > 0 then //se refere ao delphi
ShowMessage(´O Delphi está aberto´)
else
ShowMessage(´O Delphi NÃO está aberto´);
boa sorte!
wagnernormando@ig.com.br
procedure TForm1.Button1Click(Sender: TObject);
begin
if FindWindow(´TAppBuilder´, nil) > 0 then //se refere ao delphi
ShowMessage(´O Delphi está aberto´)
else
ShowMessage(´O Delphi NÃO está aberto´);
boa sorte!
wagnernormando@ig.com.br
GOSTEI 0
Turbo Drive
01/01/2004
Feliz Ano Novo.
Irmão, eu coloquei este código na inicialização do meu sistema e toda vez que alguém tenta executar na mesma máquina ele joga uma mensagem.
Vá em Project, Options, Application e em Title coloque o nome do seu programa (no nosso exemplo, Nome do Programa):
No fonte do projeto principal, declare: Forms, Windows, Dialogs.
{$R *.RES}
Var
Outro : HWND;
begin
Application.Initialize;
Outro := FindWindow(Nil, PChar(´Nome do Programa´));
if Outro = 0 then
begin
// executa OK
end
else
messagedlg(´Este aplicativo já está sendo executado neste computador.´, MtInformation, [mbok], 0);
Irmão, eu coloquei este código na inicialização do meu sistema e toda vez que alguém tenta executar na mesma máquina ele joga uma mensagem.
Vá em Project, Options, Application e em Title coloque o nome do seu programa (no nosso exemplo, Nome do Programa):
No fonte do projeto principal, declare: Forms, Windows, Dialogs.
{$R *.RES}
Var
Outro : HWND;
begin
Application.Initialize;
Outro := FindWindow(Nil, PChar(´Nome do Programa´));
if Outro = 0 then
begin
// executa OK
end
else
messagedlg(´Este aplicativo já está sendo executado neste computador.´, MtInformation, [mbok], 0);
GOSTEI 0
Leonardo Torrezani
01/01/2004
No View source (ctrl+v), veja que estou usando a classe do meu form main "TFrmColetor" E NÃO O NAME "FrmColetor"
Var
Handle: THandle;
begin
Handle := FindWindow('TFrmColetor', nil);
if Handle <> 0 then
Begin { Já está aberto }
MessageBox(Handle, PChar('O Sistema já esta aberto'),Titulo_Sistema, MB_OK + MB_ICONEXCLAMATION);
SetForegroundWindow(Handle);
Application.Terminate;
end
else
begin
Application.Initialize;
Application.MainFormOnTaskbar := True;
Application.CreateForm(TDM, DM);
Application.CreateForm(TFrmColetor, FrmColetor);
Application.Run;
end;
Var
Handle: THandle;
begin
Handle := FindWindow('TFrmColetor', nil);
if Handle <> 0 then
Begin { Já está aberto }
MessageBox(Handle, PChar('O Sistema já esta aberto'),Titulo_Sistema, MB_OK + MB_ICONEXCLAMATION);
SetForegroundWindow(Handle);
Application.Terminate;
end
else
begin
Application.Initialize;
Application.MainFormOnTaskbar := True;
Application.CreateForm(TDM, DM);
Application.CreateForm(TFrmColetor, FrmColetor);
Application.Run;
end;
GOSTEI 0