Я работаю с планировщиком задач Windows и пытаюсь запланировать выполнение задачи при входе в систему.
Итак, я скопировал и вставил точный пример кода из MSDN о том, как это сделать - http://msdn.microsoft.com/en-us/library/aa381911(v=VS.85).aspx - Я указал свое имя пользователя и пароль в примере кода. Когда я запускаю его, я получаю сообщение об ошибке «Не удалось сохранить задачу: 80041318»
Спасибо людям, задавшим другой вопрос, и теперь я знаю, что эта ошибка означает:
XML-файл задачи содержит значение, которое неправильно отформатировано или находится вне диапазона
Теперь я не знаю, что это значит, что я делаю неправильно в своем коде, особенно когда 99% является прямой копией примера кода MSDN?
Может быть, мне нужно правильно отформатировать мои имя пользователя и пароль, потому что они BSTR или VARIANT?
Я буду публиковать только те изменения, которые я сделал в коде, но чтобы увидеть весь код, перейдите на http://msdn.microsoft.com/en-us/library/aa381911(v=VS.85).aspx:
hr = pLogonTrigger->put_UserId( _bstr_t( L"soribo" ) ); // soribo is my username
pLogonTrigger->Release(); // line 221
hr = pRootFolder->RegisterTaskDefinition( // line 289
_bstr_t( wszTaskName ),
pTask,
TASK_CREATE_OR_UPDATE,
_variant_t(L"soribo"), // put in my windows username again (I'm the admin)
_variant_t(L"XXXXXX"), // put in my user password & no its not really XXXXXX :P
TASK_LOGON_GROUP,
_variant_t(L""),
&pRegisteredTask);
Я не понимаю, откуда приходит XML, потому что это код C ++ Win32?
РЕДАКТИРОВАТЬ: Отображение кода, связанного с pTask : примечание Я ничего не изменил, так что это пример кода из MSDN
// Create the task builder object to create the task.
ITaskDefinition *pTask = NULL;
hr = pService->NewTask( 0, &pTask );
pService->Release(); // COM clean up. Pointer is no longer used.
if (FAILED(hr))
{
printf("Failed to create a task definition: %x", hr);
pRootFolder->Release();
CoUninitialize();
return 1;
}