Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Execultar programa somente..?


jaumDoDelphi

Pergunta

Ola a todos bom dia!!!

Fiz um programa de BACKUP para o meu bando MDB utilizando

o Zlib!

Ele funciona muito bem. mas eu gostaria de limitar a execução dela

somente quando "AGENDA.EXE" estiver fechada.

EXEMPLO.

se AGENDA.EXE estiver na tela ela exibe um

showmessage(o backup não pode ser feito com o aplicativo AGENDA aberto).

obrigado desde já!

Editado por jaumDoDelphi
Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0
Fiz um programa de BACKUP para o meu bando MDB utilizando

o Zlib!

Ele funciona muito bem. mas eu gostaria de limitar a execução dela

somente quando "AGENDA.EXE" estiver fechada.

EXEMPLO.

se AGENDA.EXE estiver na tela ela exibe um

showmessage(o backup não pode ser feito com o aplicativo AGENDA aberto).

A maneira correta de se trabalhar com um backup de banco de dados é quando voce vai finalizar a execução do seu aplicativo.

Dentro do seu programa, de preferencia no evento OnFormClose do Menu, voce coloca a rotina de backup perguntando ao usuario se ele deseja fazer o backup.

Lembre-se que antes de efetuar o backup voce deve fechar todas as tabelas e finalizar a conexão com o banco de dados

exemplo:

// Fechar todos os DataSets Abertos
   for i := 0 to (ADOConnection1.DataSetCount-1) do
      ADOConnection1.DataSets[i].close;

   ADOConnection1.Close;

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Ola Jhonas, muito obrigado pela dica!

mas no meu caso seria uma agenda simples, nada muito complexa para fazer backup diarios!

mas sim uma vez por semana ou ate menos.

porque quem vai utilizar o programa é só EU minha esposa e meu irmão.

se alguém tiver algum código ou exemplo de como eu posso faz a checagem da

"AGENDA.EXE" estiver aberto ele da um CLOSE; no BackUP.EXE

agradeço muito!

Editado por jaumDoDelphi
Link para o comentário
Compartilhar em outros sites

  • 0

Faz assim:

function TfrmPrincipal.ProcessoExiste(ExeFileName: string): boolean;
const
PROCESS_TERMINATE=$0001;
var
ContinueLoop: BOOL;
FSnapshotHandle: THandle;
FProcessEntry32: TProcessEntry32{declarar Uses Tlhelp32};
begin
result := false;

FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
FProcessEntry32.dwSize := Sizeof(FProcessEntry32);
ContinueLoop := Process32First(FSnapshotHandle,FProcessEntry32);

while integer(ContinueLoop) <> 0 do
begin
if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) = UpperCase(ExeFileName))
or (UpperCase(FProcessEntry32.szExeFile) = UpperCase(ExeFileName))) then
begin
Result := true;
exit;
end;
ContinueLoop := Process32Next(FSnapshotHandle,FProcessEntry32);
end;
CloseHandle(FSnapshotHandle);
end;
Como usar:
if ProcessoExiste('AGENDA.exe') then
Application.Terminate;

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...