На самом деле, можно установить эту опцию, используя 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;