📄 jwamstask.pas
字号:
{$EXTERNALSYM _TRIGGER_TYPE_UNION}
TRIGGER_TYPE_UNION = _TRIGGER_TYPE_UNION;
{$EXTERNALSYM TRIGGER_TYPE_UNION}
TTriggerTypeUnion = _TRIGGER_TYPE_UNION;
PTaskTrigger = ^TTaskTrigger;
_TASK_TRIGGER = record
cbTriggerSize: WORD;
Reserved1: WORD;
wBeginYear: WORD;
wBeginMonth: WORD;
wBeginDay: WORD;
wEndYear: WORD;
wEndMonth: WORD;
wEndDay: WORD;
wStartHour: WORD;
wStartMinute: WORD;
MinutesDuration: DWORD;
MinutesInterval: DWORD;
rgFlags: DWORD;
TriggerType: TTaskTriggerType;
Type_: TTriggerTypeUnion;
Reserved2: WORD;
wRandomMinutesInterval: WORD;
end;
{$EXTERNALSYM _TASK_TRIGGER}
TASK_TRIGGER = _TASK_TRIGGER;
{$EXTERNALSYM TASK_TRIGGER}
PTASK_TRIGGER = ^TASK_TRIGGER;
{$EXTERNALSYM PTASK_TRIGGER}
TTaskTrigger = _TASK_TRIGGER;
const
IID_ITaskTrigger: TGUID = '{148BD52B-A2AB-11CE-B11F-00AA00530503}';
{$EXTERNALSYM IID_ITaskTrigger}
// interface ITaskTrigger
type
ITaskTrigger = interface (IUnknown)
['{148BD52B-A2AB-11CE-B11F-00AA00530503}']
function SetTrigger(const pTrigger: PTaskTrigger): HRESULT; stdcall;
function GetTrigger(pTrigger: PTaskTrigger): HRESULT; stdcall;
function GetTriggerString(var ppwszTrigger: LPWSTR): HRESULT; stdcall;
end;
{$EXTERNALSYM ITaskTrigger}
const
IID_IScheduledWorkItem: TGUID = '{A6B952F0-A4B1-11D0-997D-00AA006887EC}';
{$EXTERNALSYM IID_IScheduledWorkItem}
// interface IScheduledWorkItem
type
IScheduledWorkItem = interface (IUnknown)
['{A6B952F0-A4B1-11D0-997D-00AA006887EC}']
function CreateTrigger(out piNewTrigger: Word; out ppTrigger: ITaskTrigger): HRESULT; stdcall;
function DeleteTrigger(iTrigger: Word): HRESULT; stdcall;
function GetTriggerCount(out pwCount: Word): HRESULT; stdcall;
function GetTrigger(iTrigger: Word; var ppTrigger: ITaskTrigger): HRESULT; stdcall;
function GetTriggerString(iTrigger: Word; out ppwszTrigger: PWideChar): HRESULT; stdcall;
function GetRunTimes(const pstBegin: LPSYSTEMTIME; const pstEnd: LPSYSTEMTIME;
var pCount: Word; out rgstTaskTimes: LPSYSTEMTIME): HRESULT; stdcall;
function GetNextRunTime(var pstNextRun: SYSTEMTIME): HRESULT; stdcall;
function SetIdleWait(wIdleMinutes: Word; wDeadlineMinutes: Word): HRESULT; stdcall;
function GetIdleWait(out pwIdleMinutes: Word; out pwDeadlineMinutes: Word): HRESULT; stdcall;
function Run: HRESULT; stdcall;
function Terminate: HRESULT; stdcall;
function EditWorkItem(hParent: HWND; dwReserved: DWORD): HRESULT; stdcall;
function GetMostRecentRunTime(out pstLastRun: TSystemTime): HRESULT; stdcall;
function GetStatus(out phrStatus: HRESULT): HRESULT stdcall;
function GetExitCode(out pdwExitCode: DWORD): HRESULT stdcall;
function SetComment(pwszComment: LPCWSTR): HRESULT stdcall;
function GetComment(out ppwszComment: LPWSTR): HRESULT stdcall;
function SetCreator(pwszCreator: LPCWSTR): HRESULT; stdcall;
function GetCreator(out ppwszCreator: LPWSTR): HRESULT; stdcall;
function SetWorkItemData(cbData: Word; var rgbData: Byte): HRESULT; stdcall;
function GetWorkItemData(out pcbData: Word; out prgbData: Byte): HRESULT; stdcall;
function SetErrorRetryCount(wRetryCount: Word): HRESULT; stdcall;
function GetErrorRetryCount(out pwRetryCount: Word): HRESULT; stdcall;
function SetErrorRetryInterval(wRetryInterval: Word): HRESULT; stdcall;
function GetErrorRetryInterval(out pwRetryInterval: Word): HRESULT; stdcall;
function SetFlags(dwFlags: DWORD): HRESULT; stdcall;
function GetFlags(out pdwFlags: DWORD): HRESULT; stdcall;
function SetAccountInformation(pwszAccountName: LPCWSTR; pwszPassword: LPCWSTR): HRESULT; stdcall;
function GetAccountInformation(out ppwszAccountName: LPWSTR): HRESULT; stdcall;
end;
{$EXTERNALSYM IScheduledWorkItem}
const
IID_ITask: TGUID = '{148BD524-A2AB-11CE-B11F-00AA00530503}';
{$EXTERNALSYM IID_ITask}
// interface ITask
type
ITask = interface (IScheduledWorkItem)
['{148BD524-A2AB-11CE-B11F-00AA00530503}']
function SetApplicationName(pwszApplicationName: LPCWSTR): HRESULT; stdcall;
function GetApplicationName(out ppwszApplicationName: LPWSTR): HRESULT; stdcall;
function SetParameters(pwszParameters: LPCWSTR): HRESULT; stdcall;
function GetParameters(out ppwszParameters: LPWSTR): HRESULT; stdcall;
function SetWorkingDirectory(pwszWorkingDirectory: LPCWSTR): HRESULT; stdcall;
function GetWorkingDirectory(out ppwszWorkingDirectory: LPWSTR): HRESULT; stdcall;
function SetPriority(dwPriority: DWORD): HRESULT; stdcall;
function GetPriority(out pdwPriority: DWORD): HRESULT; stdcall;
function SetTaskFlags(dwFlags: DWORD): HRESULT; stdcall;
function GetTaskFlags(out pdwFlags: DWORD): HRESULT; stdcall;
function SetMaxRunTime(dwMaxRunTimeMS: DWORD): HRESULT; stdcall;
function GetMaxRunTime(out pdwMaxRunTimeMS: DWORD): HRESULT; stdcall;
end;
{$EXTERNALSYM ITask}
const
IID_IEnumWorkItems: TGUID = '{148BD528-A2AB-11CE-B11F-00AA00530503}';
{$EXTERNALSYM IID_IEnumWorkItems}
// interface IEnumWorkItems
type
IEnumWorkItems = interface (IUnknown)
['{148BD528-A2AB-11CE-B11F-00AA00530503}']
function Next(celt: ULONG; out rgpwszNames: LPLPWSTR; out pceltFetched: ULONG): HRESULT; stdcall;
function Skip(celt: ULONG): HRESULT; stdcall;
function Reset: HRESULT; stdcall;
function Clone(out ppEnumWorkItems: IEnumWorkItems): HRESULT; stdcall;
end;
{$EXTERNALSYM IEnumWorkItems}
const
IID_ITaskScheduler: TGUID = '{148BD527-A2AB-11CE-B11F-00AA00530503}';
{$EXTERNALSYM IID_ITaskScheduler}
// interface ITaskScheduler
type
ITaskScheduler = interface (IUnknown)
['{148BD527-A2AB-11CE-B11F-00AA00530503}']
function SetTargetComputer(pwszComputer: LPCWSTR): HRESULT; stdcall;
function GetTargetComputer(out ppwszComputer: LPWSTR): HRESULT; stdcall;
function Enum(out ppEnumWorkItems: IEnumWorkItems): HRESULT; stdcall;
function Activate(pwszName: PWideChar; var riid: TGUID; out ppUnk: IUnknown): HRESULT; stdcall;
function Delete(pwszName: LPCWSTR): HRESULT; stdcall;
function NewWorkItem(pwszTaskName: PWideChar; var rclsid: TGUID; var riid: TGUID; out ppUnk: IUnknown): HRESULT; stdcall;
function AddWorkItem(pwszTaskName: LPCWSTR; var pWorkItem: IScheduledWorkItem): HRESULT; stdcall;
function IsOfType(pwszName: LPCWSTR; var riid: TGUID): HRESULT; stdcall;
end;
{$EXTERNALSYM ITaskScheduler}
const
CLSID_CTask: TGuid = '{148BD520-A2AB-11CE-B11F-00AA00530503}';
{$EXTERNALSYM CLSID_CTask}
CLSID_CTaskScheduler: TGuid = '{148BD52A-A2AB-11CE-B11F-00AA00530503}';
{$EXTERNALSYM CLSID_CTaskScheduler}
type
PTaskPage = ^TTaskPage;
_TASKPAGE = (
TASKPAGE_TASK,
TASKPAGE_SCHEDULE,
TASKPAGE_SETTINGS);
{$EXTERNALSYM _TASKPAGE}
TASKPAGE = _TASKPAGE;
{$EXTERNALSYM TASKPAGE}
TTaskPage = _TASKPAGE;
const
IID_IProvideTaskPage: TGuid = '{4086658a-cbbb-11cf-b604-00c04fd8d565}';
{$EXTERNALSYM IID_IProvideTaskPage}
// interface IProvideTaskPage
type
IProvideTaskPage = interface (IUnknown)
['{4086658A-CBBB-11CF-B604-00C04FD8D565}']
function GetPage(tpType: TTaskPage; fPersistChanges: BOOL; var phPage: HPropSheetPage): HRESULT; stdcall;
end;
{$EXTERNALSYM IProvideTaskPage}
const
ISchedulingAgent = ITaskScheduler;
{$EXTERNALSYM ISchedulingAgent}
IEnumTasks = IEnumWorkItems;
{$EXTERNALSYM IEnumTasks}
//IID_ISchedulingAgent = IID_ITaskScheduler;
IID_ISchedulingAgent: TGUID = '{148BD527-A2AB-11CE-B11F-00AA00530503}';
{$EXTERNALSYM IID_ISchedulingAgent}
//CLSID_CSchedulingAgent = CLSID_CTaskScheduler;
CLSID_CSchedulingAgent: TGuid = '{148BD52A-A2AB-11CE-B11F-00AA00530503}';
{$EXTERNALSYM CLSID_CSchedulingAgent}
//added to use save option without ole2 - not there in original source of mstask.h
{$EXTERNALSYM IID_IPersistFile}
IID_IPersistFile: TGUID = (
D1: $0000010B; D2: $0000; D3: $0000; D4: ($C0, $00, $00, $00, $00, $00, $00, $46));
implementation
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -