Abrir 1 vez o programa só!
Ola as vezes meu cliente clica um monte vez no atalho para abrir meu programa, dai abre varios programas, tem como barrar isso?
Valew
Valew
Fer
Curtidas 0
Respostas
Ivonei
24/07/2003
Veja se é isto: :)
program Project1;
uses
Forms,
Windows,
Unit1 in ´Unit1.pas´ ;
{$R *.RES}
// Declare a variavel
var
Hwnd : THandle;
begin
// FindWindow vai procurar pela classe TApplication
// que tenha o nome do Title que vc configurou
Hwnd := FindWindow(´TApplication´, ´Teste´);
// se o Handle e´ 0 significa que nao encontrou
if Hwnd = 0 then
begin
Application.Initialize;
// Esta linha e´ colocada automaticamente pelo Delphi
// ao se configurar o Title
Application.Title := ´Teste´;
Application.CreateForm(TForm1, Form1);
Application.Run;
end
else
// Esta funcao traz para frente (da o foco) para a janela
// da aplicacao que ja esta rodando
SetForegroundWindow(Hwnd);
end.
program Project1;
uses
Forms,
Windows,
Unit1 in ´Unit1.pas´ ;
{$R *.RES}
// Declare a variavel
var
Hwnd : THandle;
begin
// FindWindow vai procurar pela classe TApplication
// que tenha o nome do Title que vc configurou
Hwnd := FindWindow(´TApplication´, ´Teste´);
// se o Handle e´ 0 significa que nao encontrou
if Hwnd = 0 then
begin
Application.Initialize;
// Esta linha e´ colocada automaticamente pelo Delphi
// ao se configurar o Title
Application.Title := ´Teste´;
Application.CreateForm(TForm1, Form1);
Application.Run;
end
else
// Esta funcao traz para frente (da o foco) para a janela
// da aplicacao que ja esta rodando
SetForegroundWindow(Hwnd);
end.
GOSTEI 0
Fer
24/07/2003
Valeuuuuu !!! =))
GOSTEI 0
Ivonei
24/07/2003
Valeuuuuu !!! =))
Precisando, tamos aí :D
GOSTEI 0
Fer
24/07/2003
opa num deu certo =((
GOSTEI 0
Vmotta
24/07/2003
Acrescente essas linha em seu .dpr ok?
begin
// acrescente essas 3 linhas:
if FindWindow(nil, ´Nome do Seu Sistema´) = 0 then
begin
Application.Title := ´Nome do Seu Sistema´;
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
// acrescente essas 3 linhas:
end
else
MessageDLG(´Sistema já foi iniciado.´, mtError, [mbok],0);
end.
não se esqueça de declarar na uses as seguintes units:
- Dialogs
- Windows
Qq coisa me manda um e-mail, e eu te mando um exemplo de volta ok?
T+
Vitor <vmotta@eep.br>
begin
// acrescente essas 3 linhas:
if FindWindow(nil, ´Nome do Seu Sistema´) = 0 then
begin
Application.Title := ´Nome do Seu Sistema´;
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
// acrescente essas 3 linhas:
end
else
MessageDLG(´Sistema já foi iniciado.´, mtError, [mbok],0);
end.
não se esqueça de declarar na uses as seguintes units:
- Dialogs
- Windows
Qq coisa me manda um e-mail, e eu te mando um exemplo de volta ok?
T+
Vitor <vmotta@eep.br>
GOSTEI 0