Como posso iniciar vários aplicativos e instâncias usando uma tarefa agendada do Windows?

0

Eu tenho três aplicativos principais.

Estou tentando iniciá-los automaticamente ao fazer logon em uma ordem específica com um determinado atraso.

Aqui está um exemplo de como eu gostaria que tudo fosse:

Usuário efetua login.

Aguarde um determinado atraso (digamos, 1 minuto para permitir que outros itens de inicialização sejam exibidos primeiro)

Executar a instância 1 do aplicativo 1 com argumentos

Executar a instância do aplicativo 1 2 com argumentos

Executar a instância do aplicativo 1 3 com argumentos

Executar instância do aplicativo 1 4 com argumentos

Executar a instância do aplicativo 1 5 w / argumentos

Executar a instância do aplicativo 2 1

Executar a instância do aplicativo 2 2

Executar a instância do aplicativo 2 3

Executar instância do aplicativo 3 1

Executar a instância do aplicativo 3 2 com argumentos

Atualmente, experimentei alguns exemplos diferentes.

Eu tentei usar uma única tarefa agendada com um único acionador (na inicialização com atraso) e depois uma ação Iniciar um programa para cada aplicativo e instância (10 ações no total). O problema com isso é que a tarefa executará apenas um aplicativo de cada vez. O aplicativo precisa ser fechado antes de ser movido para o próximo e eu não posso fechá-lo antes de iniciar uma nova tarefa. Isso não ajuda, já que preciso que todas as instâncias estejam em execução ao mesmo tempo.

Eu tentei fazer uma tarefa agendada para cada instância do aplicativo com vários cronômetros para tentar iniciá-los nessa ordem. Isso é tedioso e nem sempre funciona na ordem correta que eu quero. Também é muito difícil fazer alterações.

Atualmente, minha "solução" é apenas criar um arquivo em lotes que executa tudo e usar uma tarefa agendada atrasada para executar o arquivo em lotes. Isso "funciona", mas não é ideal, pois a tarefa não consegue detectar se os aplicativos travam ou os reinicia automaticamente (o aplicativo 2 tende a travar em interrupções de rede).

Existe alguma solução para isso? Eu não gostaria de baixar e instalar um aplicativo de terceiros para lidar com isso.

Estou usando o Windows Vista Home Basic SP2.

    
por Zell 18.03.2013 / 07:29

1 resposta

0

Este é um problema de duas partes.

1) Reinicie o aplicativo se ele falhar. Você pode criar um script de três linhas para cada aplicativo.

:top 
application.exe arg1 arg2 arg3 
IF ERRORLEVEL 1 GOTO top

2) Execute os aplicativos em ordem. Este é o aliado do lote, mas você terá que usar o START para que ele não espere que cada um termine antes de iniciar o próximo (digite "start /?" na linha de comando).

START "App1.1" app1_1.bat
START "App1.2" app1_2.bat
START "App1.3" app1_3.bat
...
    
por 19.03.2013 / 01:32