【发布时间】:2019-07-02 09:26:06
【问题描述】:
我想使用 c++ 检查任务调度程序中任务的触发器。 我想使用函数 HRESULT get_Type(TASK_TRIGGER_TYPE2 *pType); 检查任务是登录还是启动触发。
TASK_STATE taskState;
for (LONG i = 0; i < numTasks; i++)
{
IRegisteredTask* pRegisteredTask = NULL;
hr = pTaskCollection->get_Item(_variant_t(i + 1), &pRegisteredTask);
if (SUCCEEDED(hr))
{
BSTR taskName = NULL;
TASK_TRIGGER_TYPE2 *pType = NULL;
hr = pRegisteredTask->get_Name(&taskName);
if (SUCCEEDED(hr))
{
printf("\nTask Name: %S", taskName);
SysFreeString(taskName);
hr = pRegisteredTask->get_Type(*pType); //Implemented here
if (SUCCEEDED(hr))
printf("\n%s",&pType);
else
printf("\n\tCannot get the registered task state: %x", hr);
}
hr = pRegisteredTask->get_State(&taskState);
if (SUCCEEDED(hr))
printf("\n\tState: %d", taskState);
else
printf("\n\tCannot get the registered task state: %x", hr);
}
else
{
printf("\nCannot get the registered task name: %x", hr);
}
pRegisteredTask->Release();
}
else
{
printf("\nCannot get the registered task item at index=%d: %x", i + 1, hr);
}
}
在编译时,它给了我一个错误提示“IRegisteredTask has no member get_Type()”
然后我更改了代码并添加了 ITrigger *trig = NULL; 触发->get_Type(&pType);
但这也没有给我任何价值
【问题讨论】:
-
您显示的代码有什么问题?你的问题是什么? (不,将问题放在标题中是不够的,标题应该是问题的简短摘要,问题的主体应该有实际问题。)请阅读how to ask good questions以及@987654322 @.
-
@Someprogrammerdude 我已经改变了这个问题。请看一下
-
两件事:你确定在调用
get_Type时应该使用dereference操作符*吗?您确定可以将&pType打印为字符串吗?你没有混淆这两种用途? -
另一方面,the documentation of
IRegisteredTask并没有显示它具有get_Type函数。所以即使试图调用这个不存在的函数也是错误的。
标签: c++ windows winapi triggers taskscheduler