2024年1月27日发(作者:)
ITaskScheduler *pITS;
/ // Call CoInitialize to initialize the COM library and then
// call CoCreateInstance to get the Task Scheduler object.
/ hr = CoInitialize(NULL); if (SUCCEEDED(hr)) { hr = CoCreateInstance(CLSID_CTaskScheduler, NULL, CLSCTX_INPROC_SERVER, IID_ITaskScheduler, (void **) &pITS); if (FAILED(hr)) { CoUninitialize(); return 1; } } else { return 1; }
/ // Call ITaskScheduler::NewWorkItem to create new task. / LPCWSTR pwszTaskName; ITask *pITask; IPersistFile *pIPersistFile; pwszTaskName = L"Test Task";
hr = pITS->NewWorkItem(pwszTaskName, // Name of task CLSID_CTask, // Class identifier
IID_ITask, // Interface identifier (IUnknown**)&pITask); // Address of task
// interface
pITS->Release(); // Release object if (FAILED(hr)) { CoUninitialize(); fprintf(stderr, "Failed calling NewWorkItem, error = 0x%xn",hr); return 1; }
/ // Call IUnknown::QueryInterface to get a pointer to
// IPersistFile and IPersistFile::Save to save
// the new task to disk. /
hr = pITask->QueryInterface(IID_IPersistFile, (void **)&pIPersistFile);
pITask->Release(); if (FAILED(hr)) { CoUninitialize(); fprintf(stderr, "Failed calling QueryInterface, error = 0x%xn",hr); return 1;
#include
/// // Call CoInitialize to initialize the COM library and then // call CoCreateInstance to get the Task Scheduler object. /// hr = CoInitialize(NULL); if (SUCCEEDED(hr)) { hr = CoCreateInstance(CLSID_CTaskScheduler, NULL, CLSCTX_INPROC_SERVER, IID_ITaskScheduler, (void **) &pITS); if (FAILED(hr)) { CoUninitialize(); return 1; } } else { return 1; }
/// // Call ITaskScheduler::Activate to get the Task object. ///
ITask *pITask; LPCWSTR lpcwszTaskName; lpcwszTaskName = L"Test Task"; hr = pITS->Activate(lpcwszTaskName, IID_ITask, (IUnknown**) &pITask); pITS->Release(); if (FAILED(hr)) { wprintf(L"Failed calling ITaskScheduler::Activate: "); wprintf(L"error = 0x%xn",hr); CoUninitialize(); return 1; }
/// // Call ITask::CreateTrigger to create new trigger. ///
ITaskTrigger *pITaskTrigger; WORD piNewTrigger; hr = pITask->CreateTrigger(&piNewTrigger, &pITaskTrigger);
&pITaskTrigger); if (FAILED(hr)) { wprintf(L"Failed calling ITask::CreatTrigger: "); wprintf(L"error = 0x%xn",hr); pITask->Release(); CoUninitialize(); return 1; }
// // Define TASK_TRIGGER structure. Note that wBeginDay, // wBeginMonth, and wBeginYear must be set to a valid
// day, month, and year respectively. //
TASK_TRIGGER pTrigger; ZeroMemory(&pTrigger, sizeof (TASK_TRIGGER));
// Add code to set trigger structure? Day =1; // Required Month =1; // Required Year =1999; // Required gerSize = sizeof (TASK_TRIGGER);
Hour = 13; rType = TASK_TIME_TRIGGER_DAILY; terval = 1;
/// // Call ITaskTrigger::SetTrigger to set trigger criteria. ///
hr = pITaskTrigger->SetTrigger (&pTrigger); if (FAILED(hr)) { wprintf(L"Failed calling ITaskTrigger::SetTrigger: "); wprintf(L"error = 0x%xn",hr); pITask->Release(); pITaskTrigger->Release(); CoUninitialize(); return 1; }
/// // Call IPersistFile::Save to save trigger to disk. ///
IPersistFile *pIPersistFile; hr = pITask->QueryInterface(IID_IPersistFile, (void **)&pIPersistFile); hr = pIPersistFile->Save(NULL, TRUE); if (FAILED(hr)) { wprintf(L"Failed calling IPersistFile::Save: "); wprintf(L"error = 0x%xn",hr); pITask->Release(); pITaskTrigger->Release(); pIPersistFile->Release(); CoUninitialize(); return 1; }


发布评论