Запустить приложение с помощью Microsoft.Win32.TaskScheduler.dll - PullRequest
0 голосов
/ 26 сентября 2018

Я работаю над VS2015.Я хочу запустить приложение через 20 секунд.Как я могу сделать это с Microsoft.Win32.TaskScheduler.dll?Мой код, как показано ниже:

    void Actions::ScheduleRunApp()
{
    TaskService^ ts = gcnew TaskService();
    TaskDefinition^ td = ts->NewTask();
    td->RegistrationInfo->Description = "Run LocalLockApp";
    //td->Triggers->Add(gcnew DailyTrigger(2)); i want to run the application after 20 seconds instead
    td->Actions->Add(gcnew ExecAction("notepad.exe", "C:\\test.log", nullptr));
    ts->RootFolder->RegisterTaskDefinition(L"Test",td);
    ts->RootFolder->DeleteTask(L"Test",true);
}

1 Ответ

0 голосов
/ 26 сентября 2018

Похоже, у вас есть два приложения, и вы пытаетесь заставить приложение № 1 запустить приложение № 2, возможно, приложение # 1 завершает работу до запуска приложения № 2.

На первый взгляд, я бы сказал, что использование планировщика заданий для этого - неправильное решение.Планировщик заданий предназначен для запуска задач обслуживания на регулярной основе, например, каждый день в 4:00 утра.Вы можете создать задачу, которая запускается только один раз, сейчас + 20 секунд, но, вероятно, есть лучшие способы сделать это.

В этом случае я бы сделал одну из двух вещей:

  • Оставьте приложение №1 в рабочем состоянии.Спите в течение 20 секунд, а затем запустите приложение № 2.Скройте свое окно, если пользователь запросил выход из приложения.
  • Создайте вспомогательное приложение.Задача этого вспомогательного приложения - задержать 20 секунд, а затем запустить приложение № 2.Пусть приложение № 1 запустит приложение-помощник, затем приложение № 1 может выйти.Вы могли бы даже сделать это с помощью командного файла, если вы не хотите, чтобы другой файл .exe висел вокруг.

Если вам абсолютно необходимо использовать планировщик заданий, то я считаю, что вы хотите TimeTrigger вместо DailyTrigger.Вы также, вероятно, не хотите вызывать DeleteTask до его запуска: вместо этого убедитесь, что свойства установлены так, чтобы задача автоматически удалялась, когда она больше не запланирована.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...