Página 1 de 1

como abrir aplicativo via comando

Enviado: 13 Jun 2013 11:17
por porter
ola pessoal, gostaria de executar um aplicativo se ele ja nao estiver aberto, quando entrar no sistema, verificar se estiver aberto nao faz nada mas se nao estiver abri-lo, estou fazendo assim, mas nao esta dando certo:

RUN C:\PRWIN\PRWIN.EXE

Tem como verificar se ja está aberto e se nao estiver abri-lo?

obrigado.

como abrir aplicativo via comando

Enviado: 13 Jun 2013 11:34
por Pablo César
Se fosse em modo gráfico para Windows, diria que é muito mais simples. Mas como trata-se de aplicativo feito em Clipper, você vai precisar criar uma bat para gerenciar tudo isso. Essa BAT irá chamar um aplicativo externo que verificará se a sessão DOS estiver aberta. Isso é feito pelo título que aparece (em modo janelado é possível visualizar) o nome. Então faça um teste, chame tal executável na linha de comando e observe qual é o título da janela. Tendo o título você utilizaria um outro aplicativo externo que ao ser chamado com o parâmetro entre aspas (quando o titulo contiver espaços) com o nome do título. Ai o aplicativo irá verificar e criar alguns arquivos temporários. Se a sessão já estiver em execução com tal aplicativo, irá simplesmente chamá-lo trazendo no foco a frente na tela e se não estiver sendo rodado, simplesmente sai para ser carregado a nova sessão. Mas este recurso de chamar a janela e trazer pra frente, funciona bem quando está em modo janelado.

Existe outro aplicativo/biblioteca WAPI feito pelo Maligno que também tem a mesma função de identificar os nomes dos executáveis. Maiores detalhes sobre isso, você encontra neste tópico: https://pctoledo.org/forum/viewto ... 303#p21303 aqui falo justamente desses recursos.

Tem mais um detalhe, se esse título não estiver com definição fixa, isto é, que o usuário venha a mudar de nome, seria conveniente utilizar outro aplicativo para que fixe o nome da sessão.

Também tem um modo muito mais simples, porém não tão seguro. Aqui tem um exemplo e aqui outro. Alguns colegas já comentaram aqui no fórum e exemplificaram. Trata-se de cada vez que chamar o aplicativo, você deve criar um arquivo temporário e depois mandar executar o seu aplicativo externo, mas antes verifique com a CONDIÇÃO se já não existia o arquivo temporário. E depois que sair do aplicativo, exclua o arquivo. Mas o problema disto é que se nessa execução o computador for desligado ou o programa sair inesperadamente, irá ficar o arquivo em aberto ou existente.

Outra coisa que é muito importante é a utilização do BLINKER ao invés do RTLINK para estas questões de execução de aplicatvos externos. Ai ao invés de executar RUN você deve executar o SWPRUNCMD.