![]() |
Re: Problem bei TJclTaskTrigger
Zitat:
|
Re: Problem bei TJclTaskTrigger
TTaskTrigger ist ein record. Dieses wird über eine Getter Methode geladen:
In MSTask:
Delphi-Quellcode:
In JclTask:type {$EXTERNALSYM _TASK_TRIGGER} _TASK_TRIGGER = record // SP: removed packed record statement as seemed to affect SetTrigger cbTriggerSize: WORD; // Structure size. Reserved1: WORD; // Reserved. Must be zero. wBeginYear: WORD; // Trigger beginning date year. wBeginMonth: WORD; // Trigger beginning date month. wBeginDay: WORD; // Trigger beginning date day. wEndYear: WORD; // Optional trigger ending date year. wEndMonth: WORD; // Optional trigger ending date month. wEndDay: WORD; // Optional trigger ending date day. wStartHour: WORD; // Run bracket start time hour. wStartMinute: WORD; // Run bracket start time minute. MinutesDuration: DWORD; // Duration of run bracket. MinutesInterval: DWORD; // Run bracket repetition interval. rgFlags: DWORD; // Trigger flags. TriggerType: TASK_TRIGGER_TYPE; // Trigger type. Type_: TRIGGER_TYPE_UNION; // Trigger data. Reserved2: WORD; // Reserved. Must be zero. wRandomMinutesInterval: WORD; // Maximum number of random minutes // after start time. end; {$EXTERNALSYM TASK_TRIGGER} TASK_TRIGGER = _TASK_TRIGGER; TTaskTrigger = _TASK_TRIGGER;
Delphi-Quellcode:
Delphi sagt mir aber das die GetTrigger Methode vom Linker entfernt wurde, obwohl ich die Optimierung ausgeschaltet habe(!) :wall:
TJclTaskTrigger = class(TCollectionItem)
private FTaskTrigger: ITaskTrigger; procedure SetTaskTrigger(const Value: ITaskTrigger); function GetTrigger: TTaskTrigger; procedure SetTrigger(const Value: TTaskTrigger); function GetTriggerString: WideString; public property TaskTrigger: ITaskTrigger read FTaskTrigger; property Trigger: TTaskTrigger read GetTrigger write SetTrigger; property TriggerString: WideString read GetTriggerString; end; |
Re: Problem bei TJclTaskTrigger
Wie sieht GetTrigger aus? Irgendwoher muss das 'Nil' ja kommen...
|
Re: Problem bei TJclTaskTrigger
Delphi-Quellcode:
tasktrigger ist ein Interface vllt arbeitet das nichtnkorrekt.. ich probier das ganze mal auf Win XP, bin hier auf Vista..
function TJclTaskTrigger.GetTrigger: TTaskTrigger;
begin Result.cbTriggerSize := SizeOf(Result); OleCheck(TaskTrigger.GetTrigger(Result)); end; |
Re: Problem bei TJclTaskTrigger
OK, habs getestet, aber auf Windows XP kommt der gleiche Fehler :(
|
Re: Problem bei TJclTaskTrigger
Hallo,
versuchs mal so:
Delphi-Quellcode:
Gruß Frank
procedure TForm1.Button2Click(Sender: TObject);
var myTask:TJclTaskSchedule; ATask:TJclScheduledTask; piNewTrigger:Word; ppTrigger:ITaskTrigger; pTrigger:_TASK_TRIGGER; myYear:Word; myMonth:Word; myDay:Word; myTriggerTypeUnion:TRIGGER_TYPE_UNION; myWeekly:TWeekly; begin myTask:=TJclTaskSchedule.Create; ATask:=myTask.Add('Test Task'); ATask.ApplicationName:='C:\Windows\notepad.exe'; ATask.WorkingDirectory:='C:\windows\'; //ATask.AccountName:=''; //ATask.Password:=''; ATask.ScheduledWorkItem.CreateTrigger(piNewTrigger,ppTrigger); DecodeDate(Now,myYear,myMonth,myDay); ZeroMemory(@pTrigger, sizeof(TASK_TRIGGER)); pTrigger.cbTriggerSize:=sizeof(TASK_TRIGGER);; pTrigger.Reserved1:=0; pTrigger.wBeginYear:=myYear; pTrigger.wBeginMonth:=myMonth; pTrigger.wBeginDay:=myDay; pTrigger.wEndYear:=0; pTrigger.wEndMonth:=0; pTrigger.wEndDay:=0; pTrigger.wStartHour:=10; pTrigger.wStartMinute:=00; pTrigger.MinutesDuration := 0; pTrigger.MinutesInterval := 0; pTrigger.rgFlags := 0; pTrigger.TriggerType:= TASK_TIME_TRIGGER_DAILY; MyWeekly.WeeksInterval:=1; MyWeekly.rgfDaysOfTheWeek:= TASK_SUNDAY + TASK_MONDAY + TASK_TUESDAY + TASK_WEDNESDAY + TASK_THURSDAY + TASK_FRIDAY + TASK_SATURDAY; MyTriggerTypeUnion.Weekly:=MyWeekly; pTrigger.Type_:= MyTriggerTypeUnion; pTrigger.Reserved2:=0; pTrigger.wRandomMinutesInterval := 0; ppTrigger.SetTrigger(pTrigger); ATask.Save; FreeAndNil(myTask); end; |
Re: Problem bei TJclTaskTrigger
Cool frank-wob, das bringt zumindest schonmal keine Fehlermeldung.
Allerdings wird weder das Programm, noch der Trigger in der Aufgabenplanung angezeigt :gruebel: Edit: Unter XP gehts, unter Vista nicht :shock: :wall: |
Re: Problem bei TJclTaskTrigger
Ach mist und als normaler Benutzer kann man garkeine Tasks anlegen :(
|
Re: Problem bei TJclTaskTrigger
Hallo,
dennoch eine Frage, mit welchem Flag, Parameter kann ich denn die Checkbox "nur Ausführen wenn angemeldet".setzten Wenn ich den Task manuell anlege startet er sobal die Checkbox gesetzt ist, mfg waldforest |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:18 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz