Как назначить задачу с помощью delphi 7, например, Google updater?
Я не использую реестр, потому что он обнаруживается антивирусом Касперского как ложный сигнал.
Все, что я добавляю в реестр в качестве начального элемента, обнаруживается как троянец, поэтому я решил использовать расписание задачКак запланировать задачу программно
ответ
В следующем фрагменте кода показано, как удалить и создать задачу, которая будет запускать приложение в системе запуск с системными привилегиями. Он использует следующую командную строку:
Однако планировщик заданий с Windows Vista поддерживает принудительное создание задач, поэтому я бы не использовал его для обратной совместимости с Windows XP, где этого флага не существует. Итак, пример ниже пытается удалить задачу (если она уже существует), а затем создать новую.
Он выполняет следующие команды:
Schtasks/удалить/F/тн "myjob"
Schtasks/создать/т "myjob"/тр "C: \ application.exe"/СБН OnStart/ру «система»/удалить - удалить задачу
/с - подавить в подтверждении
/создать - создать параметр задачи
/тн - уникальное имя задачи
/тр - имя файла исполняемого файла
/СБН - тип расписания, OnStart - запускаться при старте
/RU - запустить задачу под правами указанного пользователя
А вот код:
uses
ShellAPI;
procedure ScheduleRunAtStartup(const ATaskName: string; const AFileName: string;
const AUserAccount: string);
begin
ShellExecute(0, nil, 'schtasks', PChar('/delete /f /tn "' + ATaskName + '"'),
nil, SW_HIDE);
ShellExecute(0, nil, 'schtasks', PChar('/create /tn "' + ATaskName + '" ' +
'/tr "' + AFileName + '" /sc ONSTART /ru "' + AUserAccount + '"'),
nil, SW_HIDE);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
ScheduleRunAtStartup('myjob', 'C:\Application.exe', 'System');
end;
Ну, это успешно ADD в запланированной задаче, но не будет запускаться при запуске Windows. Надеюсь, что мой (антивирус Касперского) не блокирует запланированную задачу. что делать ? я попытался заменить «системного» пользователя, поскольку мой текущий пользователь вошел в систему, но все еще не удалось. – user1023395
@ user1023395: Если вы хотите использовать свою собственную учетную запись пользователя, вам также необходимо предоставить соответствующий пароль (с помощью командного переключателя '/ RP'). Если у вашей учетной записи еще нет пароля, вам придется назначить его. (Учетная запись без пароля не может использоваться с планированием.) –
Я признаюсь, что не проверял, выполнено ли приложение (у меня мало опыта работы с запланированными задачами), я тестировал только в том случае, если они созданы. И @AndriyM прав, вам придется либо знать пароль в учетной записи, либо изменять настройки реестра. Один из них - четкие, запланированные задачи без этой защиты паролем - это одна большая дыра для вашей системы безопасности. – TLama
выяснял проблема здесь прекрасно работает
Испытано на окнах 7 Pro, если кто может проверить меня на XP PRO будет б оценил
procedure ScheduleRunAtStartup(const ATaskName: string; const AFileName: string;
const GetPCName: string ; Const GetPCUser: String);
begin
ShellExecute(0, nil, 'schtasks', PChar('/delete /f /tn "' + ATaskName + '"'),
nil, SW_HIDE);
ShellExecute(0, nil, 'schtasks', PChar('/create /tn "' + ATaskName + '" ' + '/tr "' + QuotedStr(AFileName) + '" /sc ONLOGON /ru "' + GetPCName+'\'+GetPCUser + '"'), nil, SW_HIDE)
end;
Я пробовал это на Windows XP Professional SP3, но нет, он не работает без пароля. Это то же самое, как если бы вы создавали запланированную задачу с помощью Мастера запланированных заданий. Когда я закончил мастер, я получил предупреждающее сообщение «Новая задача была создана, но может не выполняться, потому что данные учетной записи не могут быть установлены. Конкретная ошибка: 0x80070005: доступ запрещен. «И я администратор без пароля на этой машине. Так что, если у вас нет пароля, установленного в вашей учетной записи, это не сработает. Это будет очень высокий риск для вашей системы. – TLama
Это не ответ. Вы должны указать * почему * это ответ, а не просто похлопывать какой-то код вниз (и просить других протестировать его на других платформах, делает его еще * больше * не ответом.) – casperOne
без quotedstr (AFileName) он задал путь как параметр, чтобы он не будет запускать тест приложения на Windows 7 @TLAMA заменить ONSTART на ONLOGON – user1023395
- 1. Запланировать задачу
- 2. Как запланировать (и сбросить) задачу программно с помощью SpringFramwork?
- 3. Запланировать задачу после развертывания
- 4. Как запланировать задачу в C++
- 5. Как запланировать задачу в OCaml?
- 6. Как запланировать задачу в Tomcat
- 7. Запланировать задачу в Node.js
- 8. Запланировать некоторую задачу в Acumatica
- 9. Запланировать задачу в приложении ASP.NET
- 10. Запланировать задачу каждые 7 вечера
- 11. Как запланировать задачу с графическим интерфейсом программного
- 12. Как запланировать задачу с помощью python
- 13. Как запланировать задачу в Java коде
- 14. Как запланировать задачу в приложении Java Swing?
- 15. Как запланировать задачу в Restful web-сервисах
- 16. Запланировать задачу в Vista - Перезапуск системы
- 17. Запланировать задачу для мониторинга запуска определенного процесса
- 18. Лучший способ запланировать определенную задачу в Java
- 19. Spring: Запланировать задачу, которая принимает параметр
- 20. Запланировать задачу каждый день, используя ScheduledExecutorService?
- 21. iOS - Запланировать задачу - НЕ ЗАПУСКАЕТ состояние
- 22. Запланировать задачу и продолжить, в C#
- 23. Можно запланировать задачу второй с помощью schtasks?
- 24. Play Framework - Запланировать задачу в точное время
- 25. Редактировать запланированную задачу программно
- 26. Как запланировать не скрытую задачу с помощью schtasks?
- 27. Как запланировать задачу, которая проходит ежедневно в 13.00 ч
- 28. Как запланировать задачу, чтобы открыть программу каждые 3 минуты?
- 29. Как точно запланировать задачу с фиксированной скоростью несколько на второй
- 30. Как запланировать задачу через 1 неделю после регистрации
Используйте [Планировщик заданий] (http://msdn.microsoft.com/en-us/library/windows/desktop/aa383614 (v = vs.85) .aspx) API. Документация MSDN, на которую я ссылаюсь, содержит много примеров. –
Нужно задаться вопросом, почему вы попадаете в качестве трояна. Возможно, есть реальная проблема. –
прог не вреден при его очень простом применении, но приложение Kasper-sky обнаруживает в качестве троянца, если используется ** RegSetValueEx Software \ Microsoft \ Windows \ CurrentVersion \ Run **, чтобы установить реестр в любом месте в коде. API планировщика задач у вас есть какой-нибудь пример для Delphi? – user1023395