Inno Setup изменяет существующую запланированную задачу Windows для запуска при питании от батареи - PullRequest
0 голосов
/ 08 февраля 2019

По умолчанию запланированные задачи Windows создаются с включенным параметром «Запускать задачу только при включенном питании переменного тока».

Scheduled Task

Itневозможно изменить этот параметр, используя schtasks.exe, что было бы простым решением.Однако представляется, что это можно сделать с помощью метода Windows API ITaskSettings::get_DisallowStartIfOnBatteries.Можно ли его импортировать в Inno Setup, чтобы отключить этот параметр на существующей запланированной задаче и разрешить ему запускаться, когда компьютер работает от батареи?Если так, как это будет сделано?Или есть другой способ изменить этот параметр с помощью Inno Setup?

1 Ответ

0 голосов
/ 16 февраля 2019

На самом деле, можно установить эту опцию, используя schtasks.Вам просто нужно использовать XML-определение задачи.

Для вашего конкретного варианта вам нужно установить DisallowStartIfOnBatteries на false:

<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
  <!-- ... -->
  <Settings>
    <!-- ... -->
    <DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>
  </Settings>
</Task>

Подробнее см. Как добавить запланированную задачу в событие сетевого подключения / отключения с помощью Inno Setup .


Я не нашел способа использовать API для изменения существующей задачи.Это не имеет никакого эффекта:

var
  TaskService: Variant;
  Folder: Variant;
  Task: Variant;
begin
  TaskService := CreateOleObject('Schedule.Service');
  TaskService.Connect();
  Folder := TaskService.GetFolder('\');
  Task := Folder.GetTask('test');
  Task.Definition.Settings.DisallowStartIfOnBatteries := False;
end;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...