zl程序教程

您现在的位置是:首页 >  其它

当前栏目

task scheduler启动不了_Task Scheduler

启动 不了 Task scheduler
2023-06-13 09:14:44 时间

了解ITaskService对象

此对象需要依赖TaskshdWindows服务,如果此服务被关闭,那么此COM对象也将会失效。有关这个COM对象在MSDN里也多有提及,想看官方的在线连接,[点我吧]

注意,Task Scheduler 2.0仅仅可以在Xp以上的Windows系统内可以正常使用哦。

操作Task Scheduler 2.0的常见套路

对于TaskScheduler 2.0而言,开发包括了以下常见步骤,如下所示:

  • 1.调用CoInitialize()来初始化COM,代码片段如下所示:
CoInitialize(NULL);
  • 2.调用CoInitializeSecurity()来设置进程安全,避免被杀毒软件报毒 代码如下所示:
CoInitializeSecurity(
  NULL,
  -1,
  NULL,
  NULL,
  RPC_C_AUTHN_LEVEL_PKT_PRIVACY,
  RPC_C_IMP_LEVEL_IMPERSONATE,
  NULL,
  0,
  NULL
  );
  • 3.使用CoCreateInstance()函数来初始化一个ITaskService对象。代码片段如下所示:
ITaskService *m_pService=NULL;
CoCreateInstance(CLSID_TaskScheduler,
        NULL,
        CLSCTX_INPROC_SERVER,
        IID_ITaskService,
        (void ** )&m_pService);
  • 4.在Task Scheduler 2.0之中,与1.0的不同之处就是需要通过ITaskService对象里面的Connect()来连接上对应的Windows服务程序。代码片段如下所示:
m_pService->Connect(_variant_t(), _variant_t(), _variant_t(), _variant_t());
  • 5.调用ITaskService对象里面提供的各种操作方法,来执行相应的操作。如下图所示:
  • 6.操作完成之后,调用CoUninitialize()来释放COM。当然在此之前,需要对各个COM对象,比如ITaskService等COM对象执行Release()`函数进行内存释放,如果使用了智能指针来管理了此对象,那自然就可以偷懒了(^__^)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/184017.html原文链接:https://javaforall.cn