Task won't run
Posted: Tue Sep 18, 2007 2:06 pm
Hello
I am trying to get my application to create/update a task in the scheduler, to run at a user set time of the day.
However, my task never runs and task Scheduler reports "Could not start".
My schedule procedure follows, and is mostly copied from the help file.
Can anyone see what I have done wrong?
Thanks
Vert
/*==============Code below======================*/
procedure SetSched(hour, minutes: integer);
var n : integer;
task : ttaskitem;
ST : TSystemTime;
trigger : ttrigger;
triggerdetails : ttriggerdetails;
taskscheduler1: ttaskscheduler;
begin
taskscheduler1:=ttaskscheduler.create(nil);
try
task:=nil;
taskscheduler1.Open;
taskscheduler1.Refresh;
for n:=0 to taskscheduler1.Count-1 do
begin
if taskscheduler1.Items[n].name='Notepad' then
begin
task:=taskscheduler1.Items[n];
task.Activate;
task.Triggers.clear;
end;
end;
if task=nil then
begin
task:=TaskScheduler1.CreateNewItem('Notepad');
end;
if task=nil then exit;
with task do
begin
ApplicationName:='c:\windows\system32\notepad.exe';
Flags:=[tfRunOnlyIfLoggedOn];
DateTimeToSystemTime(now, ST);
ST.wMinute:=minutes;
ST.wSecond:=0;
ST.wMilliseconds:=0;
ST.wHour:=Hour;
Trigger:=task.Triggers.Add;
Trigger.triggertype:=ttDaily;
Trigger.BeginDate:=date;
Trigger.StartTime:=SystemTimeToDateTime(ST);
TriggerDetails.Daily.DaysInterval:=1;
Trigger.Details:=TriggerDetails;
Triggers.UpdateTriggers;
Save;
end;
taskscheduler1.close;
finally
taskscheduler1.free;
end;
end;
I am trying to get my application to create/update a task in the scheduler, to run at a user set time of the day.
However, my task never runs and task Scheduler reports "Could not start".
My schedule procedure follows, and is mostly copied from the help file.
Can anyone see what I have done wrong?
Thanks
Vert
/*==============Code below======================*/
procedure SetSched(hour, minutes: integer);
var n : integer;
task : ttaskitem;
ST : TSystemTime;
trigger : ttrigger;
triggerdetails : ttriggerdetails;
taskscheduler1: ttaskscheduler;
begin
taskscheduler1:=ttaskscheduler.create(nil);
try
task:=nil;
taskscheduler1.Open;
taskscheduler1.Refresh;
for n:=0 to taskscheduler1.Count-1 do
begin
if taskscheduler1.Items[n].name='Notepad' then
begin
task:=taskscheduler1.Items[n];
task.Activate;
task.Triggers.clear;
end;
end;
if task=nil then
begin
task:=TaskScheduler1.CreateNewItem('Notepad');
end;
if task=nil then exit;
with task do
begin
ApplicationName:='c:\windows\system32\notepad.exe';
Flags:=[tfRunOnlyIfLoggedOn];
DateTimeToSystemTime(now, ST);
ST.wMinute:=minutes;
ST.wSecond:=0;
ST.wMilliseconds:=0;
ST.wHour:=Hour;
Trigger:=task.Triggers.Add;
Trigger.triggertype:=ttDaily;
Trigger.BeginDate:=date;
Trigger.StartTime:=SystemTimeToDateTime(ST);
TriggerDetails.Daily.DaysInterval:=1;
Trigger.Details:=TriggerDetails;
Triggers.UpdateTriggers;
Save;
end;
taskscheduler1.close;
finally
taskscheduler1.free;
end;
end;