Как узнать время начала задачи планировщика заданий через Windows API?

введите описание изображения здесь

Я хочу знать это время начала в коде.
Я нашел этот документ Mircosoft о ITask.
Он предоставляет несколько методов для получения информации о задаче, такой как имя приложения, максимальное время выполнения и рабочий каталог … но не имеет того, что мне нужно — время запуска.

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();

}
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]