У меня есть три основных приложения.

Я пытаюсь запустить их автоматически при входе в систему в определенном порядке с заданной задержкой.

Вот пример того, как я хотел бы, чтобы все было:

Пользователь входит в систему.

Дождитесь заданной задержки (скажем, 1 минута, чтобы сначала разрешить запуск других элементов).

Запустить экземпляр приложения 1 с аргументами

Запустить экземпляр приложения 2 с аргументами

Запустить экземпляр приложения 3 с аргументами

Запустить экземпляр приложения 4 с аргументами

Запустить экземпляр приложения 5 с аргументами

Запустить приложение 2, экземпляр 1

Запустить приложение 2, экземпляр 2

Запустить приложение 2, экземпляр 3

Запустить приложение 3, экземпляр 1

Запустить экземпляр приложения 3 с аргументами

В настоящее время я пробовал несколько разных примеров.

Я попытался использовать одну запланированную задачу с одним триггером (при запуске с задержкой) и затем запустить действие программы для каждого приложения и экземпляра (всего 10 действий). Проблема в том, что задача будет запускать только одно приложение за раз. Приложение должно быть закрыто, прежде чем оно перейдет к следующему, и я не могу закрыть его перед началом новой задачи. Это не помогает, так как мне нужно, чтобы все экземпляры работали одновременно.

Я попытался создать запланированное задание для каждого экземпляра приложения с различными таймерами, чтобы попытаться запустить их в таком порядке. Это утомительно и не всегда работает в нужном мне порядке. Также очень сложно вносить изменения в.

В настоящее время мое "решение" - просто создать пакетный файл, который запускает все, и использовать отложенную запланированную задачу для запуска пакетного файла. Это "работает", но не идеально, так как задача не может определить, происходит ли сбой приложения, или автоматически перезапускает его (Приложение 2 имеет тенденцию сбой при прерывании работы сети).

Есть ли какое-то решение этого? Я не хотел бы загружать и устанавливать сторонние приложения, чтобы справиться с этим.

Я использую Windows Vista Home Basic SP2.

1 ответ1

0

Это проблема из двух частей.

1) Перезапустите приложение в случае сбоя. Вы можете создать трехстрочный скрипт для каждого приложения.

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

2) Запустите приложения по порядку. Это верный союзник, но вам придется использовать START, чтобы он не ждал завершения каждого из них, прежде чем начинать следующий (введите «start /?»).«в командной строке).

START "App1.1" app1_1.bat
START "App1.2" app1_2.bat
START "App1.3" app1_3.bat
...

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .