У меня ошибка с типом переменной pEventTrigger.
Если у кого-то есть дополнительная реализация, это тоже будет хорошим решением.
Результат, которого я хочу достичь, — это событие Задача просмотра в планировщике задач, которая должна иметь наивысший уровень прав и запускать программу по настраиваемому пути в качестве действия.
void TaskScheduler::RegisterTask(std::string eventID) {
HRESULT hr;
ITriggerCollection* pTriggerCollection = nullptr;
ITaskDefinition* pTask = nullptr;
IRegistrationInfo* pRegInfo = nullptr;
IEventTrigger* pEventTrigger = nullptr;
// Create a new task definition
hr = pService->NewTask(0, &pTask);
if (FAILED(hr)) {
logger.log("Failed to create task definition with HRESULT: 0x", hr);
throw std::runtime_error("Failed to create task definition.");
}
// Get the registration info
hr = pTask->get_RegistrationInfo(&pRegInfo);
if (FAILED(hr)) {
logger.log("Failed to get registration info with HRESULT: 0x", hr);
throw std::runtime_error("Failed to get registration info.");
}
// Set task description and author
pRegInfo->put_Description(_bstr_t(L"Task to monitor Event ID 106"));
pRegInfo->put_Author(_bstr_t(L"Author"));
// Get the trigger collection
hr = pTask->get_Triggers(&pTriggerCollection);
if (FAILED(hr)) {
logger.log("Failed to get trigger collection with HRESULT: 0x", hr);
throw std::runtime_error("Failed to get trigger collection.");
}
// Create an event trigger
hr = pTriggerCollection->Create(TASK_TRIGGER_EVENT, &pEventTrigger);
if (FAILED(hr)) {
logger.log("Failed to create event trigger with HRESULT: 0x", hr);
throw std::runtime_error("Failed to create event trigger.");
}
// Set the subscription for the event trigger
hr = pEventTrigger->put_Subscription(_bstr_t(("*[System[EventID=" + eventID + "]]").c_str()));
if (FAILED(hr)) {
logger.log("Failed to put_Subscription with HRESULT: 0x", hr);
throw std::runtime_error("Failed to set event subscription.");
}
// Set the trigger type to event log
hr = pEventTrigger->put_Type(TASK_TRIGGER_EVENTLOG);
if (FAILED(hr)) {
logger.log("Failed to set trigger type to event log with HRESULT: 0x", hr);
throw std::runtime_error("Failed to set trigger type to event log.");
}
// Register the task
hr = pRootFolder->RegisterTaskDefinition(_bstr_t(L"YourTaskName"), pTask, TASK_CREATE_OR_UPDATE, _variant_t(), _variant_t(), TASK_LOGON_INTERACTIVE_TOKEN, _variant_t(), NULL);
if (FAILED(hr)) {
logger.log("Failed to RegisterTaskDefinition with HRESULT: 0x", hr);
throw std::runtime_error("Failed to register task.");
}
}
Подробнее здесь: https://stackoverflow.com/questions/785 ... event-view
Мне нужна функция создания задачи С++, в которой я передаю eventID для создания задачи просмотра событий [закрыто] ⇐ C++
Программы на C++. Форум разработчиков
1717191371
Anonymous
У меня ошибка с типом переменной pEventTrigger.
Если у кого-то есть дополнительная реализация, это тоже будет хорошим решением.
Результат, которого я хочу достичь, — это событие Задача просмотра в планировщике задач, которая должна иметь наивысший уровень прав и запускать программу по настраиваемому пути в качестве действия.
void TaskScheduler::RegisterTask(std::string eventID) {
HRESULT hr;
ITriggerCollection* pTriggerCollection = nullptr;
ITaskDefinition* pTask = nullptr;
IRegistrationInfo* pRegInfo = nullptr;
IEventTrigger* pEventTrigger = nullptr;
// Create a new task definition
hr = pService->NewTask(0, &pTask);
if (FAILED(hr)) {
logger.log("Failed to create task definition with HRESULT: 0x", hr);
throw std::runtime_error("Failed to create task definition.");
}
// Get the registration info
hr = pTask->get_RegistrationInfo(&pRegInfo);
if (FAILED(hr)) {
logger.log("Failed to get registration info with HRESULT: 0x", hr);
throw std::runtime_error("Failed to get registration info.");
}
// Set task description and author
pRegInfo->put_Description(_bstr_t(L"Task to monitor Event ID 106"));
pRegInfo->put_Author(_bstr_t(L"Author"));
// Get the trigger collection
hr = pTask->get_Triggers(&pTriggerCollection);
if (FAILED(hr)) {
logger.log("Failed to get trigger collection with HRESULT: 0x", hr);
throw std::runtime_error("Failed to get trigger collection.");
}
// Create an event trigger
hr = pTriggerCollection->Create(TASK_TRIGGER_EVENT, &pEventTrigger);
if (FAILED(hr)) {
logger.log("Failed to create event trigger with HRESULT: 0x", hr);
throw std::runtime_error("Failed to create event trigger.");
}
// Set the subscription for the event trigger
hr = pEventTrigger->put_Subscription(_bstr_t(("*[System[EventID=" + eventID + "]]").c_str()));
if (FAILED(hr)) {
logger.log("Failed to put_Subscription with HRESULT: 0x", hr);
throw std::runtime_error("Failed to set event subscription.");
}
// Set the trigger type to event log
hr = pEventTrigger->put_Type(TASK_TRIGGER_EVENTLOG);
if (FAILED(hr)) {
logger.log("Failed to set trigger type to event log with HRESULT: 0x", hr);
throw std::runtime_error("Failed to set trigger type to event log.");
}
// Register the task
hr = pRootFolder->RegisterTaskDefinition(_bstr_t(L"YourTaskName"), pTask, TASK_CREATE_OR_UPDATE, _variant_t(), _variant_t(), TASK_LOGON_INTERACTIVE_TOKEN, _variant_t(), NULL);
if (FAILED(hr)) {
logger.log("Failed to RegisterTaskDefinition with HRESULT: 0x", hr);
throw std::runtime_error("Failed to register task.");
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/78548725/i-need-a-task-creator-c-function-in-which-i-pass-eventid-to-create-event-view[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия