Fórum Interação entre aplicações #496035

30/09/2014

0

Tenho uma lógica e preciso de ajuda para implementação.
Preciso abrir um form de uma aplicação, então passo o nome desse forma via parametro: diretorio\nome_exe.exe PARMETRO.
Se a aplicação não estiver em execução é aberto um processo para a execução deste form normalmente, porém, a minha questão é que preciso que seja verificado se este exe já estiver aberto, apenas interaja com esta aplicação e chame o form que eu passei no parametro.
O principal objetivo é que não fique dois processos da mesma aplicação em execução simultaneamente.
Segue um algoritimo de exemplo.

se aplicacao.exe estiver em execucao entao
inicio
abre form(passado por parametro) dentro desse exe;
encerre o processo usado para interacao (nao pode ficar dois processos do mesmo exe);
fim
se nao
inicio
apenas execute form_principal
fim

Já tenho uma função para verificar se está em execução, so preciso saber como fazer a interação entre as aplicações.
Alguém me ajuda nesse desafio?
Huelbert Oliveira

Huelbert Oliveira

Responder

Posts

30/09/2014

Claudio Ferreira

Para somente 1 instância do app rodar :
Cria um mutex e testa na entrada se estiver marcado, a 2a. instância apenas envia a instrução de abertura do form e sai
http://delphi.about.com/od/windowsshellapi/l/aa100703b.htm

Para envio da instrução de abertura do form :
Envie uma mensagem do Windows personalizada para a aplicação que está rodando (será necessário obter o handle dela)
http://www.cryer.co.uk/brian/delphi/howto_send_custom_window_message.htm

Para que a instância rodando receba o comando de qual form abrir :
Coloque o componente ApplicationEvents no form principal e escreva o evento OnMessage, neste evento voce abrirá o form se caso receber uma mensagem personalizada da outra instância
Responder

Gostei + 0

30/09/2014

Joel Rodrigues

Estou meio enferrujado no Delphi, mas vi que tem um recurso novo aí de App Thetering que pode servir.
Responder

Gostei + 0

30/09/2014

Huelbert Oliveira

Vou dar uma pesquisada no App Thetering Joel, obrigado.

Claudio, quanto a troca de mensagens, ficou meio confuso pra mim a questão de como enviar usando PostMessage e tratar isso no OnMessage do TApplicationEvents.
Tem algum exemplo mais claro sobre essas etapas?
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar