我想在代码中知道这个开始时间。 我找到了有关ITask的Mircosoft文档。 它提供了一些获取任务信息的方法,例如应用程序名称,最大运行时间和工作目录……但是没有我需要的-开始时间。
答案 0 :(得分:1)
任务开始时间与任务触发器关联,而不与任务本身关联。
在以下代码中,您需要使用要查找的任务初始化IRegisteredTask
。
请注意,一项任务可能有多个触发器,每个触发器可能具有不同的类型。
void GetStartTime(IRegisteredTask* pTask)
{
ITaskTrigger *pTT = NULL;
TASK_TRIGGER Trigger;
ITaskDefinition *pDefinition = NULL;
ITriggerCollection *pTriggers = NULL;
pTask->get_Definition(&pDefinition);
pDefinition->get_Triggers(&pTriggers);
LONG cTriggers = 0;
pTriggers->get_Count(&cTriggers);
while (cTriggers > 0)
{
ITrigger *pT = NULL;
pTriggers->get_Item(cTriggers, &pT);
cTriggers--;
BSTR bStart;
pT->get_StartBoundary(&bStart);
/*
bStart will be some thing like L"2013-08-01T12:05:00"
*/
::SysFreeString(bStart);
pT->Release();
}
pTriggers->Release();
}